JavaScript 类变量赋值 - 出了什么问题



这个作业有什么问题?

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

最新更新