我正在为基于Web的文本编辑器编写扩展程序。由于类的层次结构,我的代码给出了一些奇怪的结果。
我尝试将“ validate”功能移至基类,但无济于事
class BaseClass{
close(): void {
// Does some stuff
}
save(): void {
// Also does things
}
}
class SubClass extends BaseClass{
close(): void {
this.validate(() => super.close()) // This works as expected
}
save(): void {
this.validate(() => super.save()) // This throws the error: Uncaught TypeError: this.validate is not a function
}
validate(callback: () => void){
// Does some validation, then
if (validationOk) callback()
}
}
预期结果是SubClass中的save和close函数都调用了validate函数而没有错误。
答案 0 :(得分:0)
结果证明事件初始化错误。
我替换了以下内容:
this.saveButton.addEventListener('click',this.save);
使用:
this.saveButton.addEventListener('click',()=> this.save());
它在添加validate函数之前起作用的唯一原因是因为在BaseClass.save函数中没有对“ this”的引用。