这个作业有什么问题?
base = {};
base.util = {
varA : 3,
varB : this.varA,
show : function(){
console.log(this.varB);
}
};
我得到 this.varB 是未定义的。任何帮助将不胜感激。
谢谢。
这个作业有什么问题?
base = {};
base.util = {
varA : 3,
varB : this.varA,
show : function(){
console.log(this.varB);
}
};
我得到 this.varB 是未定义的。任何帮助将不胜感激。
谢谢。
当使用简写创建对象时,this
is 在全局范围内,因此指的是window
. 尝试在创建对象后检查是否定义window.varA
或刚刚定义。varA
当你声明字面量时,this
只有在方法中的值才会是你的对象。否则,它的值将取决于声明文字的上下文。
为了完成你想要的,你必须这样编码:
base = {};
base.util = {
varA : 3,
show : function(){
// here, this refers to base.util
console.log(this.varB);
}
};
base.util.varB = base.util.varA;
base.util.show();