该图再次表明每个对象都有一个原型。构造函数 Foo 也有自己__proto__的 Function.prototype,它又通过其__proto__属性再次引用 Object.prototype。因此,重复一遍,Foo.prototype 只是 Foo 的一个显式属性,它引用 b 和 c 对象的原型。
__proto__
var b = new Foo(20); var c = new Foo(30);
__proto__和 和有什么区别prototype?
prototype
该图取自dmitrysoshnikov.com。
注意:上述 2010 年文章 现在有第 2 版(2017 年) 。
__proto__是在查找链中用于解析方法等的实际对象。 是在创建对象时prototype用于构建的对象:__proto__``new
__proto__``new
( new Foo ).__proto__ === Foo.prototype; ( new Foo ).prototype === undefined;