kom*_*bat 4 javascript this ecmascript-6 es6-class
我有一个类,在 init 方法中我设置了一个点击事件,在该事件中我想调用类上的一个方法,但我不知道如何去做,或者是否有可能。这是显示我正在尝试的结构的代码。在类 init() 函数中,ajax 返回后我正在设置一个单击事件,在该回调中我想调用类的 classFn() 函数。我试过绑定这个,我试过 self = this 和绑定那个,箭头函数(我没想到会起作用,但我想我会试一试)等等。
class MyClass {
constructor() {
this.a = '';
}
init() {
....
$.getJSON(url, function(data) {
$(mySelector).click(function() {
classFn();
});
});
}
classFn() {
....
}
}
Run Code Online (Sandbox Code Playgroud)
function改变 的含义this。解决问题的一种方法是使用bind. 但是,您必须使用它两次,因为您有两层function. 解决它的一个简单方法是使用箭头函数,它不会改变this:
class MyClass {
constructor() {
this.a = '';
}
init() {
....
$.getJSON(url, (data) => {
$(mySelector).click(() => {
this.classFn();
});
});
}
classFn() {
....
}
}
Run Code Online (Sandbox Code Playgroud)