【发布时间】:2017-06-06 02:04:24
【问题描述】:
我是学习 JavaScript 的初学者。通读这个页面,我无法理解这段代码是如何定义一个对象的。我期望“ foo:bar”构造并且不确定__proto__ 是内置名称还是在这里做一些特别的事情。怎么回事?
在 ES2015 中,对象字面量被扩展为支持在构造时设置原型、foo 的简写:foo 分配、定义方法、进行超级调用以及使用表达式计算属性名称。同时,它们还使对象字面量和类声明更紧密地结合在一起,并让基于对象的设计受益于一些相同的便利。 MDN
var obj = { // __proto__ __proto__: theProtoObj, // Shorthand for ‘handler: handler’ handler, // Methods toString() { // Super calls return "d " + super.toString(); }, // Computed (dynamic) property names [ 'prop_' + (() => 42)() ]: 42 };
【问题讨论】:
-
关于
__proto__的几乎所有信息都可以在MDN 上找到。
标签: javascript object prototype