这段代码有什么问题? obj.bVar在这里未定义,为什么?如何将aVar的值分配给bVar?
var obj = {
aVar: 15,
bVar: this.aVar // This is undefined
};
console.log(obj.aVar);
console.log(obj.bVar);
答案 0 :(得分:4)
this
指的是当前作用域,它是函数调用或全局作用域。
在这里,this
是全局范围,即window
(除非你在函数中这样做)。
这是一个解决方案:
var obj = {
aVar: 15
};
obj.bVar = obj.aVar;
另一个(根据您的应用程序的上下文可能相关或不相关)将使用构造函数:
function Obj(){
this.aVar = 15;
this.bVar = this.aVar;
}
var obj = new Obj();