如何在JavaScript中的单例对象中正确使用“this”?[复制]

how to use 'this" inside a singleton object in JavaScript properly? [duplicate]

提问人:Yosan Girma 提问时间:5/22/2021 更新时间:5/22/2021 访问量:27

问:

var a={b:44,c:this.b+1};

在这种情况下,我想成为或 45 岁。但是当我尝试这样做时,我得到了错误。cb+1Cannot read property 'b' of undefined

javascript 哎呀 这个

评论

0赞 SilkeNL 5/22/2021
你不能设置然后添加到地图吗?a = {b:44}

答:

0赞 radiantshaw 5/22/2021 #1

在 JavaScript 中,创建对象时,执行上下文不会更改。因此,在您的案例中,该值是从顶层获取的。或者换一种方式来表达,如果对象尚未完成初始化,则无法访问对象的属性。this

问题的实际解决方案可能是:

var a = { b: 44 };
a.c = a.b + 1;

评论

0赞 ulou 5/22/2021
不回答问题。如果您首先提供预期的解决方案,则替代解决方案会变得有意义。
0赞 radiantshaw 5/22/2021
@ulou 我应该把“替代”这个词改成别的东西吗?因为现在你说了,感觉不像是替代解决方案,而是解决问题的不同方法。
0赞 ulou 5/22/2021
这不是 OP 想要的,这甚至不是真的。帖子已关闭并标记为重复。Or to articulate in a different way, you can't access the properties of the object if it's not finished initializing yet.
0赞 radiantshaw 5/22/2021
@ulou 只是出于好奇,我知道可以在 getter 内部访问对象属性,但我的陈述怎么会是错误的?not even true