en.javascript.info/1-js/4-data-structures/6-array/6-item-value/solution.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +03:00

789 B
Raw Blame History

//+ run
var arr = [1,2,3];

var arr2 = arr; // (*)
arr2[0] = 5;

alert(arr[0]);
alert(arr2[0]);

Код выведет 5 в обоих случаях, так как массив является объектом. В строке (*) в переменную arr2 копируется ссылка на него, а сам объект в памяти по-прежнему один, в нём отражаются изменения, внесенные через arr2 или arr.

В частности, сравнение arr2 == arr даст true.

Если нужно именно скопировать массив, то это можно сделать, например, так:

var arr2 = [];
for(var i=0; i<arr.length; i++) arr2[i] = arr[i];