bind を使用せずに 'this' と引数を addEventListener 関数に渡す の説明で、キャッシング関数が言及されました。
たとえば、次のイベント リスナーについて考えてみます。
window.addEventListener('event1', callback1, false);
window.addEventListener('event2', callback2, false);
window.addEventListener('event3', callback3, false);
window.addEventListener('event4', callback4, false);
window.addEventListener('event5', callback5, false);
それらの削除をキャッシュできますか (たとえば、配列に)?
var unloaders = []; // Keeps track of unloader functions
unloaders.push(window.removeEventListener('event1', callback1, false));
unloaders.push(window.removeEventListener('event2', callback2, false));
unloaders.push(window.removeEventListener('event3', callback3, false));
unloaders.push(window.removeEventListener('event4', callback4, false));
unloaders.push(window.removeEventListener('event5', callback5, false));
最後に、それらをキャッシュできる場合、正しい時間に実行するにはどうすればよいでしょうか?
for (let i = 0, len = unloaders.length; i < len; i++) {
//
}