搜尋

首頁  >  問答  >  主體

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

为何在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>

PHP中文网PHP中文网2787 天前651

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-11 13:11:49

    首先:

    然后:

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

    回覆
    0
  • 取消回覆