Preklad objektov referenciou v JavaScripte

Polia a objekty sa trochu líšia od ostatných primitívnych typov údajov. Rozdiel je v tom, že premenná, ktorá ukladá pole, v skutočnosti neobsahuje ho, ale jednoducho odkazuje naň.

V praxi to znamená, že pri zapísaní objektu do inej premennej, obe premenné budú odkazovať na ten istý objekt. Skúsme to v praxi. Majme nasledujúci objekt:

javascriptlet obj1 = {a: 1, b: 2, c: 3};

Priraďme ho z jednej premennej do druhej:

javascriptlet obj2 = obj1;

Zmeňme jednu z premenných:

javascriptobj2.a = '!';

Výsledkom zmeny budú viditeľné aj v druhej premennej:

javascriptconsole.log(obj1); // {a: '!', b: 2, c: 3}
Задание 1

Bez spustenia kódu určite, čo sa vypíše do konzoly:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
console.log(arr2);
Задание 2

Bez spustenia kódu určite, čo sa vypíše do konzoly:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[1] = 'b';

console.log(arr1);
Задание 3

Bez spustenia kódu určite, čo sa vypíše do konzoly:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[0] = 'b';

console.log(arr2);