ES6对单击事件执行功能

时间:2016-12-24 18:54:51

标签: javascript ecmascript-6

这是我的一小部分代码。问题在于这个。 “”下面的代码是指 HomeView 类,因为我执行了此操作._changeLanguage。 bind(this) 。如果我删除绑定(此)部分,那么指的是 li元素但是我无法调用 this._renderHTML()< / strong>方法。

    public class MyAppEntities : DbContext
        {
            public DbSet<PayPal> paypal { get; set; } //Remove this or comment this line
            ...
            ...
           //rest of your properties
    }

在像这样的点击事件上运行 _changeLanguage 方法的最简洁方法是什么。

1 个答案:

答案 0 :(得分:-1)

您应该能够编写_changeLanguage()方法:     class HomeView扩展了BaseView {

    _changeLanguage = () => {
        console.log($(this).data("lang"));
        this._renderHTML();
    };
}

fat-arrow语法为this提供了隐式绑定,因此您可以将其他代码更改为:

_init(){
    this.$view.on("click", "#langs li", this._changeLanguage);
}

因此,不再需要bind() ......这一切都归功于ES6。