24 lines
800 B
Markdown
24 lines
800 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];
|
||
```
|
||
|