该图再次显示每个对象都有一个原型。构造函数函数foo也有自己的
__proto__
哪个是函数。原型,然后又通过其引用__proto__
再次属性到object.protype。因此,重复,foo.protype只是foo的明确属性,它是指B和C对象的原型。
var b = new Foo(20);
var c = new Foo(30);
有什么区别__proto__
和prototype
?
这个数字取自dmitrysoshnikov.com。
注意:现在有第二版(2017年)到上述2010年文章。
答案
__proto__
是查找链中用于解决方法的实际对象,等等。prototype
是用于构建的对象__proto__
当您创建一个对象时new
:
( new Foo ).__proto__ === Foo.prototype
( new Foo ).prototype === undefined