Corredor

ウェブ、プログラミングの勉強メモ。

Array-Like Object で forEach する

速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ

速習ECMAScript6: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ

速習TypeScript: altJSのデファクトスタンダートを素早く学ぶ! 速習シリーズ

速習TypeScript: altJSのデファクトスタンダートを素早く学ぶ! 速習シリーズ

Js.next: Ecmascript 6

Js.next: Ecmascript 6

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

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

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

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

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