提问人:Yosan Girma 提问时间:5/22/2021 更新时间:5/22/2021 访问量:27
如何在JavaScript中的单例对象中正确使用“this”?[复制]
how to use 'this" inside a singleton object in JavaScript properly? [duplicate]
问:
var a={b:44,c:this.b+1};
在这种情况下,我想成为或 45 岁。但是当我尝试这样做时,我得到了错误。c
b+1
Cannot read property 'b' of undefined
答:
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
评论
a = {b:44}