為什麼在js中需要新增addEventListener()?

nikini發表於2024-02-18

為什麼在js中需要新增addEventListener()?

1.What?

addEventListener(監聽器)---EventTarget.addEventListener()方法將指定的監聽器註冊到 EventTarget 上,當該物件觸發指定的事件時,指定的回撥函式就會被執行。事件目標可以是一個文件上的元素 Element、Document 和 Window,也可以是任何支援事件的物件(比如 XMLHttpRequest)。

addEventListener() 的工作原理是將實現 EventListener 的函式或物件新增到呼叫它的 EventTarget 上的指定事件型別的事件偵聽器列表中。如果要繫結的函式或物件已經被新增到列表中,該函式或物件不會被再次新增。

2.Why ?

  • 關注點分離:使用 addEventListener 將 HTML 結構(內容)與 JavaScript 行為(呈現)分開,使程式碼更清晰和易於維護。

  • 靈活性:使用 addEventListener,你可以在同一個元素上附加多個事件監聽器,而不會覆蓋現有的監聽器。這使得處理各種場景變得更加靈活。

  • 無侵入式 JavaScript:透過以程式設計方式附加事件監聽器,可以使 HTML 標記保持乾淨,不受 JavaScript 程式碼的干擾,提高了可讀性和可訪問性。

  • 動態事件處理:你可以在執行時動態地附加事件監聽器,這在處理動態建立或修改的元素時特別有用。

  • 閉包支援:使用 addEventListener 附加的事件監聽器可以輕鬆訪問封閉作用域(閉包)中的變數和函式,從而更容易地管理事件處理程式內的狀態和上下文。

  • 更清晰的錯誤處理:使用 addEventListener 可以更好地處理錯誤,因為事件處理程式碼中的錯誤可以更有效地被捕獲和管理,而不像內聯事件處理程式那樣困難。

相關文章