JavaScriptda obyektlarni reference (havola) orqali uzatish
Massivlar va obyektlar boshqa primitiv ma'lumotlar turlaridan bir oz farq qiladi. Farq shundaki, massivni saqlaydigan o'zgaruvchi, aslida uning o'zini o'zida saqlamaydi, balki faqatgina unga murojaat qiladi (reference).
Amaliyotda bu shuni anglatadiki, obyektni boshqa o'zgaruvchiga tayinlaganda, ikki o'zgaruvchi ham bir xil obyektga murojaat qiladi (reference). Keling, amalda sinab ko'raylik. Quyidagi obyektimiz bor deb faraz qilaylik:
let obj1 = {a: 1, b: 2, c: 3};
Keling uni bir o'zgaruvchidan ikkinchisiga tayinlaymiz:
let obj2 = obj1;
Keling o'zgaruvchilardan birini o'zgartiramiz:
obj2.a = '!';
Natijada, o'zgarishlar ikkinchi o'zgaruvchida ham ko'rinadi:
console.log(obj1); // {a: '!', b: 2, c: 3}
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Kodni ishlamasdan, konsolga nima chiqishini aniqlang:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);