我在javascript类中使用了多个粗箭头功能,但是我一直保持null值。这适用于使用sagas的reactjs应用程序。根据先前的阅读等,我以为粗箭头功能是从包含它们的父级中获取其范围的。但是,这不是这里发生的情况。
以下是说明我遇到的问题的示例:
export default class Base {
constructor() {
this.autos = [];
}
}
export default class Auto extends Base {
createAuto = (auto) => {
debugger;
this.autos.push(auto); /This line is where this = null
return this.autos;
}
}
……
function* createAuto(auto) {
try {
let a = new Auto();
…..
let result = yield(a.createAuto, auto);
} catch (e) {
console.log(e);
}
}
调用createAuto方法时,此属性为null。如果将createAuto包含在Auto类中,怎么办?我认为这将是Auto的。