在Jquery监听器中访问THIS

时间:2018-09-04 14:00:21

标签: javascript jquery ecmascript-6

我正在尝试完成下面的示例代码所示的任务,但出现此错误:

  

未捕获的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
            });            
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用箭头功能,它可以自动绑定,并且可以避免与范围相关的问题

ES6:

  var MyClass = () => {
        return {
           myFunction: () => {
               console.log('Do something');
           },
          myOtherFunction: () => {
               $('#myButton').on('click', () => {
                   this.myFunction(); // this will be available here
               });            
           }
       }
   }