我正在阅读__proto__
和prototype
对象之间的差异,但是当我尝试访问对象实例的__proto__
时,它返回了我{{1 }}。
以下是我写的代码:
undefined
我指的是this blog,但我也看到其他博客也是如此。我们永远不会在对象的实例上获得原型,而是function Student() {
}
var student = new Student();
student.constructor // works well returns function Student() {}
student.__proto__ // returns undefined.
对象,而不是使用__proto__
属性创建的。
我错过了什么或prototype
已完全删除了吗?我在Linux上的Chrome版本 40.0.2214.94 上对此进行了测试。
任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
属性__proto__
在ECMA 6下面的JavaScript版本中不是标准的,所以你不能指望每个浏览器都支持它,或者在每个浏览器中都有相同的行为。
最好避免使用 proto 。
你可以在这里读到它:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto
这是一篇关于brendan eich的有趣评论: https://brendaneich.com/2011/01/harmony-of-my-dreams/ 编辑:
Object.setPrototypeOf不会发生。可写的 proto 是一个巨大的痛苦(必须序列化到循环检查),它会产生各种类型混淆的危险。您可能认为您希望它是一种低级别的锐器。 JS不是那种语言。类和mixins的高级表单似乎要好得多,并且不会涉及如此尖锐的边缘。