如何从匿名函数正确调用外部类方法

时间:2018-12-18 11:47:04

标签: javascript class addeventlistener

我正在尝试使用for循环将事件监听器添加到按钮 在循环内部,我声明了一个匿名函数。基本测试(警报)正在运行 但是当我尝试调用外部类方法时,它将无法正常工作

该类在此循环之外运行 警报和整个代码运行正常(没有运行时错误)

我想念什么?

for (let i = 0; i < buttons.length; i++) {
    (function() {
        var j = i;
        buttons[j].addEventListener(
            'click',
            function() {
                alert('hello world ' + j);
                classname0.method(buttons[j].id);
            },
            false,
        );
    })();
}

2 个答案:

答案 0 :(得分:1)

您以这种方式编写函数

(function(){ ... }() )

代替

(function(){ ... })()

答案 1 :(得分:0)

也许您只需要“致电”即可在课堂上获得正确的“ this”。

classname0.method.call(classname0, buttons[j].id);