javascript - __proto__ VS。 JavaScript 中的原型(prototype)

标签 javascript prototype javascript-objects prototypal-inheritance

This figure again shows that every object has a prototype. Constructor function Foo also has its own __proto__ which is Function.prototype, and which in turn also references via its __proto__ property again to the Object.prototype. Thus, repeat, Foo.prototype is just an explicit property of Foo which refers to the prototype of b and c objects.

var b = new Foo(20);
var c = new Foo(30);

__proto__prototype 有什么区别?

enter image description here

该图取自dmitrysoshnikov.com .

注意:现在有 a 2nd edition (2017)参见上述 2010 年文章。

最佳答案

__proto__是在查找链中用于解析方法等的实际对象。prototype是用于构建 __proto__ 的对象当您使用 new 创建对象时:

( new Foo ).__proto__ === Foo.prototype
( new Foo ).prototype === undefined

关于javascript - __proto__ VS。 JavaScript 中的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115367/

相关文章:

javascript - 既然我无法观察到,一个简单的 JS 对象怎么可能包含虚假属性?

javascript - 如何获取 "[object Object]"中的值

javascript - 如何将 blob 文件从 Javascript 传递到 ASP.net 中的服务器代码

javascript - 达到div高度后jquery从右到左滑动文本

Javascript 何时使用原型(prototype)

javascript - Javascript 原型(prototype)字段是否存在任何语法糖?

javascript - 如何检查对象是否为数组?

javascript - 对象不支持属性或方法 'children' 在 JStree 中重命名节点时

javascript - 如何使用 knockout.js 为列表中的选定项目动态生成编辑表单

javascript - 什么是 JavaScript 原型(prototype)?