我正在尝试完成下面的示例代码所示的任务,但出现此错误:
未捕获的TypeError:this.myFunction不是函数
我知道我做错了什么,但不知道正确的方法:我如何在Jquery侦听器中访问'this'对象?
谢谢!
var MyClass = function () {
return {
myFunction: function () {
console.log('Do something');
},
myOtherFunction: function() {
$('#myButton').on('click', function () {
this.myFunction(); // here i get the error
});
}
}
}
答案 0 :(得分:1)
您可以使用箭头功能,它可以自动绑定,并且可以避免与范围相关的问题
ES6:
var MyClass = () => {
return {
myFunction: () => {
console.log('Do something');
},
myOtherFunction: () => {
$('#myButton').on('click', () => {
this.myFunction(); // this will be available here
});
}
}
}