【日常温习】原型链图解

从图中可以总结一下几点:
1、 __proto__是对象的内部属性,每个对象都有__proto__属性, 它的值就是原型对象。
2、 new Function时会为每个函数自动创建一个prototype属性,以提供该函数用作构造函数的可能性(15.3.2.1)。所以,函数才有prototype属性。
3、 JavaScript的世界观里, 函数也是对象, 函数是一等公民。所以,函数既有__proto__属性也有prototype属性。
4、 几乎所有函数的prototype都是对象,除了一个特例:Function.prototype 是一个特殊函数。
5、 几乎所有函数都有prototype属性,而特殊函数 Function.prototype 没有prototype属性。
6、 构造函数Foo.proto、 Function.__proto__和 Object.__proto__都指向 Function.prototype。所以, Object/Array/String等等构造函数本质上和Function一样,均继承于Function.prototype。
7、 Function.prototype.__proto__指向Object.prototype。
8、 原型链的尽头是Object.prototype。所有对象均从Object.prototype继承属性。Object.prototype.__proto__为null。
转自:https://www.cnblogs.com/xmyun/p/9474703.html
代码改变世界,我的《源代码》,我的世界!

浙公网安备 33010602011771号