参考
https://segmentfault.com/q/1010000043489928
鋭い説明
つまり、元の配列項目の並べ替えsort()
が変更され、実際には元の配列であるsort()
配列の結果が最後に返されます。新しい配列が返されるわけではありません。
原理説明
JS
スタックメモリとヒープメモリに分けられ、スタックメモリには可変基本型データとヒープメモリアドレスを格納でき、ヒープメモリには複素数データを格納できます。
配列データはヒープ メモリに格納され、スタック メモリに格納される変数はヒープ メモリ内のアドレスにのみ対応します。
newArr = list
これは、変数を追加しnewArr -> ADDR1
てlist -> ADDR1
同じヒープ メモリ アドレスを指すことと同じです。
引用とは?
参照はエイリアスです。また、リスト、newArr、list1 の任意の変数であり、その参照である ADDR1 もポイントします。
おそらく、参照を返すことは、変更された元のデータを指す新しいnewAr
アドレス。
たった今:
var newArr = list.sort(....)