建设自己的网站,广告网络联盟,莱芜网站制作,网业版qq最近准备面试#xff0c;梳理以前的知识#xff0c;发现我以前对原型链的搜索原则理解一直不完全对。
以前的理解#xff1a; “在当前对象未找到该属性#xff0c;就一直向上查找#xff0c;找到就停止并返回该数据#xff0c;如果直到object的原型也没找到#xff0c…最近准备面试梳理以前的知识发现我以前对原型链的搜索原则理解一直不完全对。
以前的理解 “在当前对象未找到该属性就一直向上查找找到就停止并返回该数据如果直到object的原型也没找到就返回undefined 如果是调用方法就报错, 该 xxxx 不是一个函数 ” 正确搜索原则 在当前对象未找到该属性就沿着原型链向上查找找到就停止并返回该属性 直到某个的原型的值为null都没找到该属性的话则终止然后返回 undefined 如果是调用方法就会导致报错, xx is not a function 案例 Object.prototype.test1 芙莉莲; function t1() {} let a new t1(); console.log(a, a.test1); 芙莉莲 Object.setPrototypeOf(t1.prototype, null); let b new t1(); console.log(b, b.test1); undefined 没想到是在搜索过程中遇到原型的值为null时就停止并不是就会一直查找到Object的原型才停止
虽然旧公司非常操蛋工作氛围差强迫加班但领导的技术确实可以对我有不小启发。现在找工作重新梳理知识才发现该问题。