JavaScript类变量赋值-怎么了?

JavaScript类变量赋值-怎么了?,javascript,oop,class,Javascript,Oop,Class,这个作业有什么问题 base = {}; base.util = { varA : 3, varB : this.varA, show : function(){ console.log(this.varB); } }; 我明白了。varB是未定义的。任何帮助都将不胜感激 谢谢。当使用简写法创建对象时,此在全局范围内,因此指的是窗口。尝试检查在创建对象后是否定义了window.varA或只是varA。当您声明文本时,此的值仅在方法内时才是您的对象。否则,其值

这个作业有什么问题

base = {};
base.util = {
   varA : 3,
   varB : this.varA,
   show : function(){
      console.log(this.varB);
   }
};
我明白了。varB是未定义的。任何帮助都将不胜感激


谢谢。

当使用简写法创建对象时,
在全局范围内,因此指的是
窗口
。尝试检查在创建对象后是否定义了
window.varA
或只是
varA

当您声明文本时,
的值仅在方法内时才是您的对象。否则,其值将取决于声明文本的上下文

要实现您想要的,您必须按照以下方式编写代码:

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

在本例中,
指的是全局
窗口