JavaScript 一次性事件监听器
前两天给 hljs 修内存泄漏问题的时候仔细翻了一下 MDN,发现一个有点意思的东西,就是这个一次性的事件侦听器。
换言之,传统的事件侦听器的 cleanup 是这样的:
/** @param e {Event} */
function listener(e) {
/* ... */
window.removeEventListener('event', listener)
}
window.addEventListener('event', listener)
在 Chrome 55+ / Safari 10+ / Firefox 50+ 可以这么写:
window.addEventListener((e) => {
doSomething()
}, { once: true })
这似乎是一个被很多人忽视的特性。
发现这种水文时间花费最大的是做头图