为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Javascript 中的同一个类中调用另一个方法

如何从 Javascript 中的同一个类中调用另一个方法

狐的传说 2021-08-26 17:16:27
我知道以前有这方面的问题,但我已经尝试了答案,但仍然因错误而失败:__salaryTypeFromWeekday 不是函数。我尝试在构造函数中使用“bind”,使用“this”来调用函数,并更改函数声明以包含“this”关键字。class SalaryType {  constructor(selectedSalaryType) {    this.selectedSalaryType = selectedSalaryType;    this.__salaryTypeFromWeekday = this.__salaryTypeFromWeekday.bind(this)  }  get selected() {    return this.selectedSalaryType;  }  static __updateSalaryType(typeOfDayStr, statusStr)  {    var typeOfDay = parseInt(typeOfDayStr, 10);    var status = parseInt(statusStr, 10);    switch(typeOfDay) {      case WEEK_DAY:        this.selectedSalaryType = this.__salaryTypeFromWeekday(status);        break;    }    return this.selectedSalaryType;  }  __salaryTypeFromWeekday(status) {    switch(status) {      case WORK_ATTENDANCE:        return SALARY_KIND_NORMAL;      default:        return null;    }  }}
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我很确定问题在于您从静态函数调用 __salaryTypeFromWeekdays,该函数没有“this”的实例,因为它在类上而不是在实例上运行。所以,你应该要么改造__salaryTypeFromWeekdays静态functino,或通过类的__updateSalaryType实际实例,并使用它像: instance.__salaryTypeFromWeekdays


查看完整回答
反对 回复 2021-08-26
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

不要bind在构造函数内部做——简单地定义方法,就像你所做的那样应该作为一个实例方法工作。


如果你想要一个静态方法,你应该使用static:


static __salaryTypeFromweekday(status) {

  // ...

}


查看完整回答
反对 回复 2021-08-26
  • 2 回答
  • 0 关注
  • 706 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信