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

标签 javascript jquery class methods

最近我开始练习 javascript/jQuery。 我有一份类(class)调查问卷。

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? 这可能是一个简单的修复,但我没有看到错误。

提前致谢。

最佳答案

这里需要使用箭头函数,因为 this 将指向点击事件处理程序内的窗口对象,但您需要当前上下文

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

关于javascript - JS - 从同一类中的其他方法调用类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58671552/

相关文章:

javascript - 如何从 select 中获取选项文本?

javascript - 选择数组的随机元素来设置 Youtube videoId API

javascript - 如何在匿名函数内访问同一个类的 javascript 类属性

java - 如何使用 Java API?

c++ - 根据数字模板参数有条件地编译转换运算符

javascript - 如何在 onClick 中绑定(bind) angularjs 的数据作为参数

javascript - 在 Android WebView 中使用本地存储访问被拒绝

javascript - 包含 jQuery,如果还没有包含的话

jquery - 下载 jquery.numeric.js 文件

javascript - 使用 jQuery 更改事件的 Bootstrap 3 选项卡