ES6为什么这个内部dom对象选择功能祖父母

时间:2019-07-17 18:08:33

标签: javascript function object ecmascript-6 this

在ES5代码中,必须创建辅助变量_this,以便可以访问UiComponent的this。

为什么在ES6中,这个关键字引用UiComponent函数,而不是作为DOM对象的按钮?

// ES5
function UiComponent() {
    var _this = this; // (A)
    var button = document.getElementById('myButton');
    button.addEventListener('click', function () {
        console.log('CLICK');
        _this.handleClick(); // (B)
    });
}
UiComponent.prototype.handleClick = function () {
    ···
};

// ES6
function UiComponent() {
    var button = document.getElementById('myButton');
    button.addEventListener('click', () => {
        console.log('CLICK');
        this.handleClick(); // (A)
    });
}

0 个答案:

没有答案