Keep on moving

あんまりまとまってないことを書きますよ

配列の初期化の話

今まで、JavaScriptで配列を初期化する場合、以下のように書いていた。

  // ↓からの配列を無理やり詰め込む
  a=[];
var arr=[1,2,3];

function foo(a){
  a=[];
  a.push(4);
  alert(a);
}

function bar(a){
  a.length=0;
  a.push(5);
  alert(a);
}

foo(arr);
//-> [4]
alert(arr);
//-> [1,2,3](arrの値は書き換わらない)
bar(arr);
//-> [5]
alert(arr);
//-> [5](arrの値が書き換わる)