2016-05-18 5 views
-1

Вероятно, это глупый вопрос :)Назначение переменных Javascript |

var x = [1, 2, 3]; 
var y = x; // Value of x is stored in y 
y[0] = 5; 
alert(x[0]); // returns 5. Why? 

х [0] в идеале должно быть 1, но почему это 5?

+4

Обе переменные 'x' и' y' содержат ссылки на один и тот же массив (это значения объектов). Существует только один массив, и это тот, чей индекс '0' вы изменяете. – Bergi

+0

Вы скопировали * ссылку * не * значение * массива. Что вам делать, это на самом деле * клонировать * массив. –

ответ

1

x содержит адрес первого элемента массива и x = y передает это значение в y. Итак, y [0] совпадает с x [0]. Это связано с тем, что x [0] дает адрес как x + 0 и y [0] при y + 0. Так как y и x одинаковы, поэтому y [0] и x [0] указывают на одно и то же место.

+0

Спасибо @Akshey – Mahendhar

Смежные вопросы