美文网首页前端面试
2-6 原型和原型链 - 5个原型规则

2-6 原型和原型链 - 5个原型规则

作者: 留白_汉服vs插画 | 来源:发表于2017-11-06 15:02 被阅读24次

2-6 原型和原型链 - 5个原型规则

5条原型规则,原型规则是学习原型链的基础。

第一、所有引用类型(数组、函数、对象)都具有对象特性,即可以自由扩展属性。(除了null)可以添加各种属性值。

这里对象abj,arr,fn就可以一直扩展属性的。

第二、所有的引用类型(数组、函数、对象)都有一个(隐式原型)_proto_属性。属性值是一个普通对象。上面的6,7,8行,打印出来,就是一个普通对象。

第三、所有的函数,都有一个prototype(显式原型) 属性,属性值也是一个普通对象。

因为根据第一条,既然可以任意扩展属性,当然可以扩展显式原型属性和隐式原型属性。

第四、所有引用类型(数组,对象,函数),_proto_隐式原型属性指向它的构造函数的“prototype”属性值。12行。obj._proto_ 是对象obj的隐式原型,完全等于它的构造函数Object的显式原型属性。

第五、当试图得到一个对象的某个属性时候,如果这个对象本身没有这个属性,那么会去它的_proto_(也就是它构造函数的prototype)中寻找。

所有的函数有一个显式原型,显示原型又是对象,所以完全可以给显示原型添加属性。6行添加了一个属性。

10行,f就是一个普通对象,当然可以添加属性。

14行有本身这个属性。

15行自身没有定义这个属性,但是会去显式原型对象中去找。

相关文章

网友评论

    本文标题:2-6 原型和原型链 - 5个原型规则

    本文链接:https://www.haomeiwen.com/subject/erulpxtx.html