onunload用于移除事件处理程序的疑问

看红皮书的时候看到13.4.1 “UI事件”,对onunload事件的使用产生了疑问,文中说法疑似有前后矛盾的地方。问几个人以及查资料暂时没有解决这个问题,存疑,待我解决后再更新结果。

按照书上说法:

与 load 事件对应的是 unload 事件,这个事件在文档被完全卸载后触发。只要用户从一个页面切换到另一个页面,就会发生 unload 事件。而利用这个事件最多的情况是清除引用,以避免内存泄漏。

无论使用哪种方式,都要小心编写 onunload 事件处理程序中的代码。既然 unload 事件是在一切都被卸载之后才触发,那么在页面加载后存在的那些对象,此时就不一定存在了。此时,操作 DOM 节
点或者元素的样式就会导致错误。

以及13.5.2 “移除事件处理程序”:

导致“空事件处理程序”的另一种情况,就是卸载页面的时候……一般来说,最好的做法是在页面卸载之前,先通过 onunload 事件处理程序移除所有事件处理程序。

产生一个疑问:因为事件处理程序是加在DOM节点上的,既然不能访问DOM了,那怎么做到清除事件处理程序呢?