有什么方法可以让下面的东西在 JavaScript 中工作?
var foo = {
a: 5,
b: 6,
c: this.a + this.b // Doesn't work
};
在当前的形式中,这段代码显然会抛出一个引用错误,因为 this
没有引用 foo
。但是是否有什么方法可以让对象字面量的属性中的值依赖于之前声明的其他属性?
最佳答案
嗯,我能告诉你的只有 getter :
var foo = {
a: 5,
b: 6,
get c() {
return this.a + this.b;
}
}
console.log(foo.c) // 11
这是 ECMAScript 第 5 版规范引入的语法扩展,大多数现代浏览器(包括 IE9)都支持该语法。
关于javascript - 对象字面量/初始化器中的自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616202/