JS-从同一个类中的其他方法调用该类中的方法

时间:2019-11-02 13:25:35

标签: javascript jquery class methods

最近,我开始使用javascript / jQuery进行练习。 我上课问卷。

class Questionnaire {
    constructor (json, container) {
        // constructor stuff
    }

    processAnswers() {
        // Do something
    }   

    showQuestionnaire() {
        // A lot of stuff happens here
        // HTML gets build in this method and added to an excisting container. 
        // The element with class 'button_confirm' gets generated here as well.
        // this.container is an excisting HTML DOM-Object (Div)

        $(this.container).find('.button_confirm').on('click', function () {
            this.processAnswers();  
        });
    }   
}

一切正常,但是当我按下按钮并触发事件时,我收到一条错误消息,告诉我processAnswers不是函数。

我在做什么错?我为什么不能从这里打电话给processAnswers? 这可能很容易解决,但我看不到错误。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要在此处使用箭头功能,这是因为this会指向click事件处理程序中的窗口对象,但是您需要当前上下文

$(this.container).find('.button_confirm').on('click', (e)=> {
            this.processAnswers();  
        });