`this`如何在es6对象文字模式中起作用?

时间:2018-05-20 18:25:01

标签: javascript jquery

我正在学习对象文字模式。这是一个非常简单的对象(es5)示例,其中包含一些使用jQuery的导航功能。请注意this如何引用对象navigation



(function() {
    var navigation = {
        init: function() {
            this.cacheDom();
            this.bindEvents();
        },
        cacheDom: function() {
            this.$nav = $('nav');
            this.$hamburger = $('button.ham');
        },
        bindEvents: function() {
            this.$hamburger.click(this.toggleNav.bind(this));
        },
        toggleNav: function() {
            this.$nav.toggleClass('active');
        }
    }
    navigation.init();
})()




在ES6中我很难理解为什么我不能以同样的方式引用它。示例代码块:



(function() {
    var navigation = {
        init: () => {
            console.log(this)
            navigation.cacheDom();
            navigation.bindEvents();
        },
        cacheDom: () => {
            navigation.$nav = $('nav');
            navigation.$hamburger = $('button.ham');
        },
        bindEvents: () => {
            navigation.$hamburger.click(this.toggleNav.bind(this));
        },
        toggleNav: () => {
            navigation.$nav.toggleClass('active');
        }
    }
    navigation.init();
})()




在上面的示例中,this将登录到控制台。我怎样才能让我的对象知道这是指对象?

任何帮助表示赞赏, 感谢

0 个答案:

没有答案