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