24 lines
789 B
Markdown
24 lines
789 B
Markdown
|
||
|
||
```js
|
||
//+ 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`.
|
||
|
||
Если нужно именно скопировать массив, то это можно сделать, например, так:
|
||
|
||
```js
|
||
var arr2 = [];
|
||
for(var i=0; i<arr.length; i++) arr2[i] = arr[i];
|
||
```
|
||
|