やったこと

webサービスを作るときに考えたことを垂れ流します

javascriptで関数に参照渡しできなくてびびった

javascriptで関数に参照渡しで変数をセットしようと思ったらできなくてびびった。

javascriptは関数に入れる引数は通常値渡しになるらしい。

引数に参照渡しを使いたい場合は、配列やオブジェクトをセットするらしい。
配列やオブジェクトは参照渡し扱いになるから、これを利用するんだって。

↓こんな感じにするのかな。

var ret = new Array();

calc_hoge(ret);
alert(ret[0]);
alert(ret[1]);

function calc_hoge(result){
  result[0] = 1+1;
  result[1] = 2+2;
}

あんまし配列のindexにマジックナンバー使いたくないんだけど、こんなのにいちいち定義するのもめんどくさいし、なんかやだなこれ。

どうしてこんな仕様になった。。