Javascript 为什么可以';我不能直接分配一个函数吗?

Javascript 为什么可以';我不能直接分配一个函数吗?,javascript,javascript-events,Javascript,Javascript Events,此代码调用f()函数: <p id="firstp">Hello!</p> <script> function f() { doSomething(); }; document.getElementById("firstp").onmouseover = function() { f(); }; </script> 当我直接调用函数时,为什么不设置事件处理程序?因为您不想调用函数,所以您只想告诉浏览器,它应该

此代码调用
f()
函数:

<p id="firstp">Hello!</p> 
<script>
  function f() {
    doSomething();
  };
  document.getElementById("firstp").onmouseover = function() {
      f();
  };
</script>

当我直接调用函数时,为什么不设置事件处理程序?

因为您不想调用函数,所以您只想告诉浏览器,它应该在mouseover事件发生时调用它
f()
(函数名后的圆括号)调用函数并将其分配给
.onmouseover
函数返回的内容。您希望将对
f
的引用分配给
.onmouseover
,因此您要查找的是

document.getElementById("firstp").onmouseover = f;

因为您不想调用该函数,所以您只想告诉浏览器,当鼠标悬停事件发生时,它应该调用该函数
f()
(函数名后的圆括号)调用函数并将其分配给
.onmouseover
函数返回的内容。您希望将对
f
的引用分配给
.onmouseover
,因此您要查找的是

document.getElementById("firstp").onmouseover = f;