JavaScript __proto__无法访问

时间:2015-03-14 19:04:57

标签: javascript google-chrome prototype

我正在阅读__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 上对此进行了测试。

任何帮助表示赞赏。谢谢!

1 个答案:

答案 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的高级表单似乎要好得多,并且不会涉及如此尖锐的边缘。