Array-Like Object で forEach する

document.querySelectorAll() の結果は、配列チックに length プロパティがあったり、[2] などと添字を指定して要素が取得できたりするのだが、forEach() メソッドを持っていない。

こうした配列っぽいけど Array ではないオブジェクトを Array-Like Object と呼ぶ。

この Array-Like Object で Array の関数を使うには、call() を使って欲しい関数を拝借してやれば良い。

Array.prototype.forEach.call(document.querySelectorAll('div'), (elem) => {
  // ...
});

よくこの書き方を忘れてしまうので書いておく。