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) => {
// ...
});
よくこの書き方を忘れてしまうので書いておく。