图解原型及原型对象

从图中可以总结一下几点:

proto 是对象的内部属性,每个对象都有__proto__属性, 它的值就是原型对象。

构造函数Foo.__proto__ 、 Function.__proto__ 和 Object.__proto__ 都指向 Function.prototype。所以, Object/Array/String等等构造函数本质上和Function一样,均继承于Function.prototype。

JavaScript的世界观里, 函数也是对象, 函数是一等公民。
只有函数才有prototype属性;
几乎所有函数都有prototype属性,而特殊函数 Function.prototype 没有prototype属性。
几乎所有函数的prototype都是对象,除了一个特例:Function.prototype 是一个特殊函数;

原型链的尽头是Object.prototype。所有对象均从Object.prototype继承属性。Object.prototype.__proto__为null。
Function.prototype.__proto__指向Object.prototype。

猜你喜欢

转载自www.cnblogs.com/xmyun/p/9474703.html