我正在学习对象文字模式。这是一个非常简单的对象(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
将登录到控制台。我怎样才能让我的对象知道这是指对象?
任何帮助表示赞赏, 感谢