Předávání objektů odkazem v JavaScriptu

Pole a objekty se poněkud liší od ostatních primitivních datových typů. Rozdíl je v tom, že proměnná, která uchovává pole, ve skutečnosti neobsahuje pole, ale pouze odkazuje na něj.

V praxi to znamená, že při zápisu objektu do jiné proměnné se obě proměnné budou odkazovat na stejný objekt. Zkusme to v praxi. Předpokládejme, že máme následující objekt:

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

Přiřaďme jej z jedné proměnné do druhé:

javascriptlet obj2 = obj1;

Změňme jednu z proměnných:

javascriptobj2.a = '!';

V důsledku toho budou změny viditelné i v druhé proměnné:

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

Bez spuštění kodu určete, co se vypíše do konzole:

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

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

Bez spuštění kodu určete, co se vypíše do konzole:

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

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

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

Bez spuštění kodu určete, co se vypíše do konzole:

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

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

console.log(arr2);