gpt4 book ai didi

javascript - 如何创建一个对象,其属性是 Javascript 中同一对象中其他属性的总和

转载 作者:行者123 更新时间:2023-12-01 02:13:27 24 4
gpt4 key购买 nike

我在这方面遇到了很多麻烦,似乎无法在任何地方找到正确的答案。我正在创建一个具有各种属性的对象 A,其中一个属性是其他两个属性的总和,如下所示:

    var A = {
a:0,
b:0,
c: this.a + this.b
};

我的问题是,在运行时,当我引用 A.c 时,我得到 NaN 而不是 0,或者它应该基于我分配给 a 和 b 的任何值。

请他;p。我完全困惑了。

最佳答案

因为上下文this不是对象A的引用,而是一个引用封闭范围,即窗口

所以,this.a + this.b --> 未定义 + 未定义 --> NaN

说明封闭范围的示例(在本例中为对象 window):

var a = 5;
var b = 5;

var A = {
a: 0,
b: 2,
c: this.a + this.b
};

console.log(A.c);

另一种方法是使用 getter 将函数绑定(bind)到该属性 c

var A = {
a: 0,
b: 2,
get c() {
return this.a + this.b
}
};

console.log(A.c);
A.a = 33;
console.log(A.c);

关于javascript - 如何创建一个对象,其属性是 Javascript 中同一对象中其他属性的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49603962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com