这可能是一个新手问题。我已经使用javascript多年了,但是才开始对此感到“认真”。我对“这个”有疑问

var defaults = {
    baseId : 'item_',
    baseName : this.baseId
}

console.log('defaults',defaults);

不知道为什么defaults.baseName是“undefined”怎么在花括号中引用一个东西?是否可以,或者我真的必须两次键入“item_”吗?

最佳答案

JavaScript对象文字是一种语法糖,因此它不起作用。

this; // at point A
var defaults = {
    baseId : 'item_',
    baseName : this.baseId
}

转换为
this; // point A
var defaults = new Object();
defaults.baseId = 'item_';
defaults.baseName = this.baseId; // "this" here is same as "this" at point A

您可以使用getter和setter。
{
   baseId: 'item_',
   get baseName() { return this.baseId; },
   set baseName(x) { this.baseId = x }
}

关于javascript - 关于JavaScript中 “this”的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5614490/

10-16 22:55