Getter 在 if 语句中返回未定义。似乎不适合比较

问题描述 投票:0回答:1

我有一个 ClockObj,它有一个处于“HAS A”OOP 关系的 AlarmObj。或者我应该说通过构造函数注入。

在 AlarmObj 内部,我有一个 isAlarmOn 布尔变量。我正在使用 getter 返回它。

get getAlarmOnOffStatus() { return this.isAlarmOn; }

所以在 ClockObj 里面我有:

if (this.AlarmObj.getAlarmOnOffStatus === true) }

但是它返回未定义,并且在调试时我发现 getter 是在 if 语句之后调用的。

javascript undefined getter
1个回答
0
投票

我根据你的描述创建了这个结构并且它有效

class AlarmObj {
  isAlarmOn = true
  get getAlarmOnOffStatus() { return this.isAlarmOn; }
}

class ClockObj {
  AlarmObj = new AlarmObj()
  
  constructor() {
    if (this.AlarmObj.getAlarmOnOffStatus === true) {
      console.log('works')
    }
  }
}


new ClockObj()

© www.soinside.com 2019 - 2024. All rights reserved.