我有以下课程:
module ModuleName {
export class ClassName {
constructor() {
this.bindEvents();
}
bindEvents() {
var self = this;
$("#save-button").off("click")
.click(() => {
self.classFunction();
});
};
classFunction(){
}
}
}
我希望self变量现在包含对该类的引用。 (编译器甚至告诉我确实如此!)
但是,当js加载到客户端时,它找不到函数,因为self指向窗口对象而不是类。
我该如何实现它以便对班级进行引用?
生成的js:
ClassName.prototype.bindEvents= function () {
var self = this;
$("#save-button").off("click")
.click(function () {
self.classFunction();
});
};
答案 0 :(得分:1)
使用箭头功能可以解决您的问题。
const bindEvents = () => {
// your code
}
ES6不会在普通函数中将“ this”自动绑定到类语法。
使用箭头功能会将“ this”引用到类中。