我有以下js代码段(与原版略有简化),我无法弄清楚为什么我为TypeError: this is undefined
行获得了this.onError(event.error.message)
。我知道this
在范围内无效,但我无法理解为什么。
如何在不必将onError
传递给initialize()
方法的情况下解决此问题?
class Class1{
constructor(props) {
this.class2 = Class2(props.publicKey);
this.onError = props.onError;
}
//initialize the form
initialize() {
//add error handler
this.class2.addEventListener("change", function (event) {
if (event.error) {
this.onError(event.error.message);
}
});
}
}
答案 0 :(得分:1)
将this
上下文分配给变量并在回调函数中使用它:
initialize() {
var that = this;
//add error handler
this.class2.addEventListener("change", function (event) {
if (event.error) {
that.onError(event.error.message);
}
});
}