Array.prototype.pushとは
Arrayとは?
MDNによるとArrayは配列を構築するためのグローバルオブジェクトで、
配列とは複数の要素を管理格納してくれるリスト構造らしい。 正確ではないかもしれないが、僕の認識では配列はインデックス番号をもった
ビルドインオブジェクトと言う認識です。 配列を現実で例えると、出席簿みたいなもので、
番号と何かしらの要素(出席簿の場合は生徒の名前)が入ったリスト表みたいなイメージで良いと思う。
JavaScript の Array オブジェクトは、配列を構築するためのグローバルオブジェクトで、配列とは複数の要素の集合を格納管理するリスト構造です。 MDN
prototypeとは?
prototypeとはビルドインオブジェクトがあらかじめ持っているプロパティや
メソッドのことを言います。 正直まだ深く理解出来てない、、
Array.prototype.push()とは?
やっと本題。
MDNによると、、、 push() メソッドは、配列の末尾に 1 つ以上の要素を追加することができます。また戻り値として新しい配列の要素数を返します。 MDN
ポイントは二つ。 1,配列の最後に要素を追加したいときに使うメソッド 2,要素を追加して新しくなった配列の要素数を戻り値として返してくれる。
const arr = [1,2];
const newArr = arr.push(3);
console.log(newArr) /// 3
console.log(arr) /// [1,2,3]
上のコードの混乱ポイントはconsole.log(newArr)で3が出力される部分だと思う。
これはpushメソッドが新しい配列をもう一つ作るのではなく、
既存の配列に要素を追加するだけのメソッドであると理解していないと混乱する。 newArrが3になったことをより詳しく説明すると、 pushメソッドがこのような関数であるからだと予想出来る。
const puch = (e) => { 元々ある配列 + e; return 新しく要素が追加された配列.length; }
イメージしやすいようにかなり省いているが考え方は間違ってないと思います。 上のサンプルはこちらで確認できます。