我是ES6和Javascript的新手,我无法弄清楚在下面的代码中链接这个dump()方法有什么问题.
它返回“main.js:25 Uncaught TypeError:无法读取未定义的属性’dump’”:
class TaskCollection {
constructor(tasks = []) {
this.tasks = tasks;
}
addTasks(newTasks = []) {
this.tasks = this.tasks.concat(newTasks);
}
dump() {
console.log(this.tasks);
}
}
let myTasks = new TaskCollection([
'Do stuff'
]);
myTasks.addTasks([
'New Task'
]).dump();
现在,如果我不链接dump()方法,一切都会正常工作.
myTasks.addTasks([
'New Task'
]);
myTasks.dump();
解决方法:
方法addTasks不返回对象的引用.如果你想链接工作,你的方法需要如下所示:
addTasks(newTasks = []) {
this.tasks = this.tasks.concat(newTasks);
return this;
}