我正在做一些助手库,我发现了一个有趣的问题。也就是说,我如何 - 在函数内 - 引用已运行所述函数的对象?
也许我的解释不清楚,所以这是代码:
HTML
<div class=".ful">...</div>
JS
class Moon {
onEvents(what, events, callback) {
const ev = events.split(' ');
for (let t of Array.from(what)) {
for (let e of ev) {
t.addEventListener(e, () => {
callback();
});
}
}
}
}
const moon = new Moon();
moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover', () => { console.log('identikit'); });
这很有效,但是当我需要像
这样的东西时moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover', () => { console.log(this); });
我得到了undefined
。我该怎么办?
答案 0 :(得分:2)
箭头函数的要点是绑定this
的当前值。如果您不想这样做,请不要使用箭头功能。
moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover', function () { console.log(this); });
和
t.addEventListener(e, callback);