Присвоение одного массива другому javascript - PullRequest
0 голосов
/ 14 марта 2020

Таким образом, массив в javascript назначается ссылками, например,

let a = [1,2,3];

let b = a;

a = [];

console.log(b);

Не должен ли он печатать пустой массив, поскольку a назначается пустому массиву, а b и a указывают на то же самое.

1 Ответ

0 голосов
/ 14 марта 2020

Я знаю, что такое поведение может показаться странным. Однако, как уже упоминали другие авторы, происходит то, что, записывая «a = []», вы фактически назначаете «a» новую ссылку (т.е. вы больше не манипулируете «старым» массивом), и «b» будет удерживать старая ссылка на область памяти, где изначально был назначен «старый» массив и разрыв связь с «а». Следовательно, теперь будет существовать 2 ссылки вместо начальной 1.

...