有什么方法可以让像下面这样的东西在 JavaScript 中工作吗?
var foo = {
a: 5,
b: 6,
c: this.a + this.b // Doesn't work
};
在当前形式中,此代码显然会引发引用错误,因为 this 并未引用 foo。但是有有什么方法可以让对象字面量属性中的值依赖于之前声明的其他属性吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你可以这样做:
var foo = { a: 5, b: 6, init: function() { this.c = this.a + this.b; return this; } }.init();这将是对象的某种一次性初始化。
请注意,您实际上是将
init()的返回值分配给foo,因此您必须返回该值。好吧,我唯一能告诉你的是
var foo = { a: 5, b: 6, get c() { return this.a + this.b; } } console.log(foo.c) // 11