ES6 类 - 从点击事件调用方法

bar*_*lle 5 javascript ecmascript-6 es6-class

我是 ECMA 课程的新手。

在下面的代码中,我构建了一个运行良好的按钮类。现在我试图从单击事件侦听器内部调用 prev_image() 方法。我知道“this”指的是按钮实例,但不确定如何从 Gallery 类调用方法。谢谢你的帮助。

class Gallery{

    constructor(){
    }

    draw(){

        //build button
        prevbtn.draw();

        //button listener
        document.getElementById('prevbtn').addEventListener('click', function(){
            this.prev_image();   <--- this errors out
            console.log('pressed'); <--this works
        });

    }

    prev_image(){
        console.log('previous image!');
    }

}
Run Code Online (Sandbox Code Playgroud)

Sai*_*jra 12

document.getElementById('prevbtn').addEventListener('click', ()=>{
            this.prev_image();   
            console.log('pressed');
        });
Run Code Online (Sandbox Code Playgroud)

在此处使用箭头函数。箭头函数没有自己的函数,thisthis从包含箭头函数的代码中使用