狐的傳說
2021-08-26 17:16:27
我知道以前有這方面的問題,但我已經(jīng)嘗試了答案,但仍然因錯(cuò)誤而失敗:__salaryTypeFromWeekday 不是函數(shù)。我嘗試在構(gòu)造函數(shù)中使用“bind”,使用“this”來調(diào)用函數(shù),并更改函數(shù)聲明以包含“this”關(guān)鍵字。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貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
我很確定問題在于您從靜態(tài)函數(shù)調(diào)用 __salaryTypeFromWeekdays,該函數(shù)沒有“this”的實(shí)例,因?yàn)樗陬惿隙皇窃趯?shí)例上運(yùn)行。所以,你應(yīng)該要么改造__salaryTypeFromWeekdays靜態(tài)functino,或通過類的__updateSalaryType實(shí)際實(shí)例,并使用它像: instance.__salaryTypeFromWeekdays
。

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
不要bind在構(gòu)造函數(shù)內(nèi)部做——簡單地定義方法,就像你所做的那樣應(yīng)該作為一個(gè)實(shí)例方法工作。
如果你想要一個(gè)靜態(tài)方法,你應(yīng)該使用static:
static __salaryTypeFromweekday(status) {
// ...
}
添加回答
舉報(bào)
0/150
提交
取消