事件处理中的函数与回调函数

为何在html属性中指定事件响应,就使用函数名()的方式调用,不可以写成函数名?
鼠标移动到div上面时,触发执行cbFunc(cbFunc显示一个图片).

<div id="id1"  onmouseover=cbFunc() ></div>

你不可以写成

<div id="id1"  onmouseover=cbFunc ></div>

当你使用注册事件方法的时候,
document.getElementById('id1').addEventListener('onmouseover',cbFunc,false);
你就不可以写成
document.getElementById('id1').addEventListener('onmouseover',cbFunc(),false);

从这里我可以得出结论:
1.函数cbFunc可以是普通函数被调用,也可以作为回调函数被调用。
事实上可以说,任何函数都可以称为回调函数(调用者将它作为一个参数,就可以使这个函数成为回调函数).
这个结论对吗?
有一点不明白的是
1.为何要写成

<div id="id1"  onmouseover=cbFunc() ></div>

你不可以写成

<div id="id1"  onmouseover=cbFunc ></div>

阅读 3.2k
1 个回答

首先:

然后:

个人推测大概就是这么解析的(因为这种做法早就不推荐了,所以文档我都没怎么看到提及),所以必须加括号

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题