为何在html属性中指定事件响应,就使用函数名()的方式调用,不可以写成函数名?
鼠标移动到p上面时,触发执行cbFunc(cbFunc显示一个图片).
<p id="id1" onmouseover=cbFunc() ></p>
你不可以写成
<p id="id1" onmouseover=cbFunc ></p>
当你使用注册事件方法的时候,
document.getElementById('id1').addEventListener('onmouseover',cbFunc,false);
你就不可以写成
document.getElementById('id1').addEventListener('onmouseover',cbFunc(),false);
从这里我可以得出结论:
1.函数cbFunc可以是普通函数被调用,也可以作为回调函数被调用。
事实上可以说,任何函数都可以称为回调函数(调用者将它作为一个参数,就可以使这个函数成为回调函数).
这个结论对吗?
有一点不明白的是
1.为何要写成
<p id="id1" onmouseover=cbFunc() ></p>
你不可以写成
<p id="id1" onmouseover=cbFunc ></p>
?
首先:
然后:
个人推测大概就是这么解析的(因为这种做法早就不推荐了,所以文档我都没怎么看到提及),所以必须加括号