javascript - 为什么在 addEventListener 回调中调用 removeEventListener?

标签 javascript javascript-events

我已经下载了一个 JS 入门模板。它有一个像这样的 default.js 文件: (当然,在仅包含 <a> 元素的 html 页面中引用了 js 文件。)

(function () {
    "use strict";
    window.addEventListener("load", function load(event) {
        window.removeEventListener("load", load, false);
        init();
    }, false);

    function init() {
        document.getElementById("link").addEventListener("click", showAlert, false);
    }

    function showAlert() {
        alert("Welcome to Pure HTML!");
    }
}());

现在我的问题是为什么会有一个window.removeEventListenerwindow.addEventListener功能?

最佳答案

这是一种允许事件处理程序执行一次的模式。在事件处理程序的第一次执行中,事件处理程序被删除以停止其再次执行。

有趣的是,它用于 window 加载事件,因为无论如何它应该只触发一次。

关于javascript - 为什么在 addEventListener 回调中调用 removeEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805878/

相关文章:

javascript - 如何在 React-native WebView 中捕获 form.submit 的响应

javascript - 如何使用 angularjs 将值转换为时间?

javascript - 防止 window.onload 被覆盖 javascript

javascript-events - javascript 事件处理程序的执行顺序

javascript - 获取未知选项 : '-p' while running yarn build:prod Angular 6

javascript - Asp.net OnClick事件和OnClientClick事件一起使用

javascript - 如何在 JavaScript 中禁用 ESC 键的功能?

Javascript onHover 事件

javascript - 客户端 JWT 基于角色的授权