javascript - 为什么可以检索原型(prototype)但 __proto__ 在 JavaScript 中未定义?

标签 javascript google-chrome prototype v8

现在我正在学习 JavaScript prototype__proto__,并找到了几个有用的链接

__proto__ VS. prototype in JavaScript

How does __proto__ differ from constructor.prototype?

我可以在 Chrome 下通过以下代码获取对象 f__proto__ 的值。

var Foo = function() {}
var f = new Foo();
f.__proto__
> Foo {} 

但是,将Foo.prototype.__proto__设置为null后,__proto__的值为undefined .

var Foo = function() {}
Foo.prototype = {name: 'cat', age: 10};
Foo.prototype.__proto__ = null;
var f = new Foo();
f.__proto__
> undefined 

但是我可以得到f.name的值,也就是cat。这是我的理解,因为f.name的值是可取的,对象f__proto__应该指向Foo.prototype 。为什么 f.__proto__ 的值是 undefined

最佳答案

__proto__ 是 JavaScript 的内部特殊属性。你不应该使用。

来自 mdn

While Object.prototype.proto is supported today in most browsers, its existence and exact behavior has only been standardized in the ECMAScript 6 specification as a legacy feature to ensure compatibility for web browsers. For better support, it is recommended that only Object.getPrototypeOf() be used instead.

关于javascript - 为什么可以检索原型(prototype)但 __proto__ 在 JavaScript 中未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159621/

相关文章:

javascript - 使用原型(prototype) [javascript] 的未定义结果

javascript - 如果我不需要继承或优化,我应该使用原型(prototype)吗

javascript - jQuery 自动完成不适用于克隆

java - 如何使用 Java 在 selenium webdriver 中绕过或处理 Windows 身份验证

jquery - jQuery、Chrome 中存在滚动条问题的可拖动弹出窗口

javascript - 当 base64 null 后跟 =? 时,HTML5 数据 URI 失败

c - 参数与 C 中的原型(prototype)不匹配

javascript - parsley.js 验证但不提交

javascript - 悬停个人资料图片后带箭头的工具提示框

javascript - 在 jquery 中的单独文本区域(TinyMce 除外)中加载图像