有什么办法可以使以下内容在JavaScript中起作用?
var foo = { a: 5, b: 6, c: this.a + this.b // Doesn't work };
在当前形式下,此代码显然会引发引用错误,因为this未引用foo。但是, 是否 有任何方法可以使对象文字的属性值取决于先前声明的其他属性?
this
foo
好吧,我唯一能告诉你的就是getter::
var foo = { a: 5, b: 6, get c() { return this.a + this.b; } } console.log(foo.c) // 11
这是ECMAScript第5版规范引入的语法扩展,大多数现代浏览器(包括IE9)都支持该语法。