在下文中,我将click事件分配给func()。当我加载页面时,会出现警告框。有人可以解释为什么会触发事件吗?幕后究竟发生了什么?当DOM加载时,是否会触发附加到函数的所有事件?
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
window.onload = function initialize() {
func.click += handler();
}
function handler(e) {
alert('clicked');
}
function func() {
}
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
在JavaScript中,函数是一阶公民。意思是,它们就像变量一样。
handler
是保存您的功能的“变量”。 handler()
调用函数并在此情况下返回值undefined
。
func.click
不是一个事件,它只是一个属性。您可以将属性附加到JavaScript中的任何变量/对象。它没有特别的意义。 此外, func.click
不存在,因此执行+=
可能会给您一个错误,因为它是undefined
。