JavaScript - 引用自身的对象

标签 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); });

我得到未定义。我能做什么?

最佳答案

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

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

t.addEventListener(e, callback);

关于JavaScript - 引用自身的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160858/

相关文章:

javascript - 如何对雾进行补间/动画 Three.js

javascript - 在 HTML 表单提交上从 MySQL DB 创建唯一的 URL/页面

javascript - 使用javascript选择后如何更改文件输入值?

javascript - 如何在 Angular 指令中的模板上渲染范围变量

javascript - 我如何仅在任何现代浏览器(如 chrome、firefox、safari、opera、IE)中关闭当前选项卡,并且具有通用 JavaScript 的任何版本

javascript - AngularJS DOM 选择器

javascript - 弹出带有来自 php 文件的消息的框

javascript - JavaScript 中的递归异步函数

javascript - 如何使用 angular2 单击“添加”按钮来获取表单模型

javascript - 为什么点击时我的颜色没有变化?