【问题标题】:window.addEventListener('message', myFunction(event)) doesn't workwindow.addEventListener('message', myFunction(event)) 不起作用
【发布时间】:2016-01-21 01:19:29
【问题描述】:

我试图了解为什么以下内容不起作用。

var myFunction = function(event) {
    // do something with event
};

window.addEventListener('message', myFunction(event));

我收到以下错误:“ReferenceError: event is not defined”。

但是,以下工作和event 可以使用。

window.addEventListener('message', function(event) {
    // do something with event
});

如何在第一种情况下使用event?为什么event只能在第二种情况下访问?

【问题讨论】:

    标签: javascript function firefox events


    【解决方案1】:

    您看到错误是因为您正在立即调用该函数。您需要将 reference 传递给该函数。

    换句话说,改变这个:

    window.addEventListener('message', myFunction(event));
    

    到这里:

    window.addEventListener('message', myFunction);
    

    使用addEventListener()方法时,触发事件时默认将event对象作为第一个参数传递。

    【讨论】:

    • 哦!我看到,在第一种情况下,我试图将 event 变量从不同的上下文(不存在)传递给我的函数。谢谢,有道理。
    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2021-07-03
    • 2016-04-28
    • 2021-07-06
    相关资源
    最近更新 更多