Javascript 参照渡しの連動を切る

2 5月

Javascriptの話です。配列を代入でコピーすると、参照渡しになります。つまり名前の異なる同じ実体のものになって、片方を書きかえると、もう一つも変更されます。時々この連動を切りたくなります。そんな時にはこんな感じでどうでしょうか。

<html>
<head>
<script type="text/javascript">

var a = [1,2,3,4,5];

var b=a.slice(0,a.length + 1);

a[4]=10;

alert('a[4] = ' + a[4] + ', ' + 'b[4] = ' + b[4] );

</script>
</head>
<body>
</body>
</html>

slice は元の配列を変化させないので、参照渡しにならないようです。下図は画面表示です。