这个作业有什么问题?
base = {};
base.util = {
varA : 3,
varB : this.varA,
show : function(){
console.log(this.varB);
}
};
我得到这个.varB 是未定义的。 任何帮助将不胜感激。
谢谢。
声明文本时,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();
使用速记创建对象时,this
在全局范围内,因此引用window
。尝试检查创建对象后是否定义了window.varA
或仅定义了varA
。