这段代码有什么问题?
obj.bVar
这里未定义,为什么呢?如何将 aVar
的值分配给 bVar
?
var obj = {
aVar: 15,
bVar: this.aVar // This is undefined
};
console.log(obj.aVar);
console.log(obj.bVar);
this
,在 JavaScript 中指的是当前作用域,可以是函数调用,也可以是全局作用域。
这里,
this
是全局范围,即window
(如果您在函数中执行此操作则除外)。
解决方案如下:
var obj = {
aVar: 15
};
obj.bVar = obj.aVar;
另一种方法(可能相关也可能不相关,具体取决于您的应用程序的上下文)是使用构造函数:
function Obj(){
this.aVar = 15;
this.bVar = this.aVar;
}
var obj = new Obj();