В чём разница?
Объясните, пожалуйста, в чем разница между этими кодами? Почему в первом случае переменная "а" меняется, а во втором случае нет?
Пример 1: function def1() { let a = [0,1]; def2(a); console.log(a);//[ 10, 1 ] }; function def2(a) { console.log(a);//[ 0, 1 ] a[0] = 10; }; def1(); Пример 2: function def1() { let a = [0,1]; def2(a); console.log(a);//[ 0, 1 ] }; function def2(a) { console.log(a);//[ 0, 1 ] a = 10; }; def1(); |
Svib,
Копирование по ссылке a[0] = 10; использовали указатель a, для изменения свойства обьекта по этому указателю. a = 10; изменили указатель с обьекта на строку. |
Спасибо большое за ответ!
|
Часовой пояс GMT +3, время: 15:37. |