当我在doTasks方法中使用work方法时,我收到错误“Uncaught TypeError:无法读取未定义的属性'work'”。我并不完全了解发生了什么。
class Employee {
constructor(name) {
this.name = name;
this.totalWorktime = 0;
}
work(worktime) {
this.totalWorktime += worktime;
}
doTasks(tasks){
tasks.forEach(function(element) {
this.work(element);
});
}
}
答案 0 :(得分:3)
doTasks(tasks) {
tasks.forEach((element) => {
this.work(element);
});
}
删除“功能”所以这真的是“这个”
答案 1 :(得分:1)
你处于不同的封闭状态。 使用箭头符号(推荐)......
doTask(tasks) {
tasks.forEach((element) => {
this.work(element);
});
}
...或者在循环外创建对类实例的引用。
doTasks(tasks) {
let that = this;
tasks.forEach(function(element) {
that.work(element);
});
}