亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 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 關注
  • 734 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號