JavaScript - 引用自身的对象

时间:2016-05-11 11:10:23

标签: javascript

我正在做一些助手库,我发现了一个有趣的问题。也就是说,我如何 - 在函数内 - 引用已运行所述函数的对象?

也许我的解释不清楚,所以这是代码:

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。我该怎么办?

1 个答案:

答案 0 :(得分:2)

箭头函数的要点是绑定this当前值。如果您不想这样做,请不要使用箭头功能。

moon.onEvents(document.querySelectorAll('.ful'), 'click mouseover', function () { console.log(this); });

t.addEventListener(e, callback);