Предаване на обекти по референция в JavaScript
Масивите и обектите се различават до известна степен от останалите примитивни типове данни. Разликата е, че променливата, която съхранява масив, всъщност не го съдържа, а просто реферира към него.
На практика това означава, че при записване на обект в друга променлива, и двете променливи ще реферират към един и същ обект. Нека опитаме на практика. Нека имаме следния обект:
let obj1 = {a: 1, b: 2, c: 3};
Присвояваме го от една променлива в друга:
let obj2 = obj1;
Променяме една от променливите:
obj2.a = '!';
В резултат на това промените ще бъдат видими и в другата променлива:
console.log(obj1); // {a: '!', b: 2, c: 3}
Без да пускате кода, определете какво ще се изведе в конзолата:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Без да пускате кода, определете какво ще се изведе в конзолата:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Без да пускате кода, определете какво ще се изведе в конзолата:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);