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

Sia*_*avi 6 javascript javascript-events

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

(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!");
    }
}());
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*att 11

它是一种允许事件处理程序执行一次的模式.在第一次执行事件处理程序时,将删除事件处理程序以停止再次执行.

有趣的是,它用于window加载事件,因为它应该只触发一次.