作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道以前有过这样的问题,但我已经尝试过答案,但仍然失败并出现错误:
__salaryTypeFromWeekday is not a function.
我尝试在构造函数内使用“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;
}
}
}
最佳答案
我很确定问题是您从静态函数调用 __salaryTypeFromWeekdays,该函数没有“this”的实例,因为它在类上操作而不是在实例上操作。因此,您应该将 __salaryTypeFromWeekdays 转换为静态函数,或者将 __updateSalaryType 传递给该类的实际实例并按如下方式使用它:实例.__salaryTypeFromWeekdays
。
关于javascript - 如何在 Javascript 中调用同一个类中的另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266677/
我是一名优秀的程序员,十分优秀!