从类中的函数内调用本地方法

时间:2018-04-02 12:29:59

标签: javascript

我试图在点击函数中调用类方法,如下所示:

class ClassName {
    constructor(element) {
        this.elem = element;
        this.elem.on('click', function() {
            this.notify();
        });
    }
    notify() {
        console.log("Element clicked!");
    }
}

它不起作用,我认为因为(纠正我,如果我错了)在函数中使用 this.notify(); 意味着它指的是所述函数中的某些东西,而不是班级本身。我的问题是,是否可以从click函数中调用类方法?我是一般的新课程,我很感激建议。有没有更好的方法将类事件监听器添加到类中的元素?

1 个答案:

答案 0 :(得分:0)

您可以使用箭头功能保持在同一范围内,否则this如果处于正常功能状态,将不再引用您的对象。

class ClassName {
  constructor(element) {
    this.elem = element;
    this.elem.on('click', () => {
      this.notify();
    });
  }
  notify() {
    console.log("Element clicked!");
  }
}

new ClassName($("button"));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>