簡體   English   中英

為什么不能直接分配功能?

[英]Why can't I assign a function directly?

此代碼調用f()函數:

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

但是,如果我這樣寫,它將停止工作:

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

當我直接調用函數時,為什么沒有設置事件處理程序?

因為您不想調用該函數,所以只想告訴瀏覽器在發生mouseover事件時應調用該函數。 f() (函數名稱后的圓括號)調用函數並將f返回的值分配給.onmouseover 您想要將對f的引用分配給.onmouseover ,所以您正在尋找的是

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM