对象中的JavaScript变量赋值

时间:2014-01-21 08:40:26

标签: javascript

这段代码有什么问题? obj.bVar在这里未定义,为什么?如何将aVar的值分配给bVar?

var obj = {
    aVar: 15,
    bVar: this.aVar // This is undefined
};

console.log(obj.aVar);
console.log(obj.bVar);

1 个答案:

答案 0 :(得分:4)

在JavaScript中,

this指的是当前作用域,它是函数调用或全局作用域。

在这里,this是全局范围,即window(除非你在函数中这样做)。

这是一个解决方案:

var obj = {
    aVar: 15
};
obj.bVar = obj.aVar;

另一个(根据您的应用程序的上下文可能相关或不相关)将使用构造函数:

function Obj(){
   this.aVar = 15;
   this.bVar = this.aVar;
}
var obj = new Obj();