Javascript 尝试添加不存在的事件时,addEventListener的行为是什么?

Javascript 尝试添加不存在的事件时,addEventListener的行为是什么?,javascript,javascript-events,Javascript,Javascript Events,例如: someElement.addEventListener("blahblah", alert("hello!")); 当在Chrome和Firefox开发控制台中输入时,似乎会触发一次警报(“hello!”)调用,然后返回“未定义”” 如果我将同一个调用嵌入到页面中,那么似乎什么也不会发生——不会触发错误,也不会返回有趣的值,等等。这只是一个自定义事件,可以修改 但是,您在测试中遇到的问题是,您需要将函数作为处理程序传递,而不是调用的alert()返回的undefined。试试这些:

例如:

someElement.addEventListener("blahblah", alert("hello!"));
当在Chrome和Firefox开发控制台中输入时,似乎会触发一次
警报(“hello!”)
调用,然后返回“
未定义”


如果我将同一个调用嵌入到页面中,那么似乎什么也不会发生——不会触发错误,也不会返回有趣的值,等等。

这只是一个自定义事件,可以修改

但是,您在测试中遇到的问题是,您需要将函数作为处理程序传递,而不是调用的
alert()
返回的
undefined
。试试这些:

el.addEventListener("foo", alert.bind(window, "hello!"));


它只是一个自定义事件,可以是

但是,您在测试中遇到的问题是,您需要将函数作为处理程序传递,而不是调用的
alert()
返回的
undefined
。试试这些:

el.addEventListener("foo", alert.bind(window, "hello!"));


没有列出抛出的任何异常,因此可能不会发生任何事情。但是,个别浏览器的行为可能是不可预测的。此外,您在控制台中谈论的
未定义
是addEventListener函数调用的返回值,根据w3c文档,它是
未定义
什么是
blahblah
?你期望代码能做什么?!?!?!第二个参数必须是函数<代码>警报(“你好!”)不是一个函数!它是对alert函数的调用,返回
未定义的
。您的代码应该是
。addEventListener(“blahblah”,function(){alert(“hello”);})
您忘记添加
函数(){}
,这使得
警报
函数立即执行。没有列出抛出的任何异常,因此可能不会发生任何事情。但是,个别浏览器的行为可能是不可预测的。此外,您在控制台中谈论的
未定义
是addEventListener函数调用的返回值,根据w3c文档,它是
未定义
什么是
blahblah
?你期望代码能做什么?!?!?!第二个参数必须是函数<代码>警报(“你好!”)不是一个函数!它是对alert函数的调用,返回
未定义的
。您的代码应该是
。addEventListener(“blahblah”,function(){alert(“hello”);})
您忘记添加
函数(){}
,这使得
警报
函数立即执行。啊,谢谢!我不知道定制活动。这就解释了。啊,谢谢你!我不知道定制活动。这就解释了。