JavaScript类变量赋值 - 有什么问题?

时间:2013-01-23 14:10:05

标签: javascript oop class

这项任务有什么问题?

base = {};
base.util = {
   varA : 3,
   varB : this.varA,
   show : function(){
      console.log(this.varB);
   }
};

我得到这个.varB未定义。任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:0)

使用速记创建对象时,this位于全局范围内,因此引用window。在创建对象后,请尝试检查是否定义了window.varAvarA

答案 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();