本文介绍了__proto__ VS.JavaScript 中的原型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这个图再次表明每个对象都有一个原型.构造函数函数 Foo 也有自己的 __proto__
即 Function.prototype,并且反过来也通过它的 __proto__
属性再次引用到Object.prototype.因此,重复一遍, Foo.prototype 只是一个显式的Foo 的属性,指的是 b 和 c 对象的原型.
var b = new Foo(20);
var c = new Foo(30);
__proto__
和 prototype
有什么区别?
该图取自 dmitrysoshnikov.com.
注意:现在有 第二版(2017 年) 到上述 2010 年的文章.
Note: there is now a 2nd edition (2017) to the above 2010 article.
推荐答案
__proto__
是查找链中用于解析方法等的实际对象.prototype
是使用 new
创建对象时用于构建 __proto__
的对象:
__proto__
is the actual object that is used in the lookup chain to resolve methods, etc. prototype
is the object that is used to build __proto__
when you create an object with new
:
( new Foo ).__proto__ === Foo.prototype;
( new Foo ).prototype === undefined;
这篇关于__proto__ VS.JavaScript 中的原型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!