Posredovanje objektov po referenci v JavaScript

Tabele in objekti se nekoliko razlikujejo od preostalih primitivnih tipov podatkov. Razlika je v tem, da spremenljivka, ki hrani tabelo, dejansko ne vsebuje le-te, ampak samo se nanjo sklicuje.

V praksi to pomeni, da pri zapisovanju objekta v drugo spremenljivko, se bosta obe spremenljivki sklicevali na isti objekt. Poskusimo v praksi. Naj imamo naslednji objekt:

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

Priredimo ga iz ene spremenljivke v drugo:

javascriptlet obj2 = obj1;

Spremenimo eno od spremenljivk:

javascriptobj2.a = '!';

Kot rezultat bodo spremembe vidne tudi v drugi spremenljivki:

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

Brez zaganjanja kode določite, kaj se bo izpisalo v konzolo:

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

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

Brez zaganjanja kode določite, kaj se bo izpisalo v konzolo:

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

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

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

Brez zaganjanja kode določite, kaj se bo izpisalo v konzolo:

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

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

console.log(arr2);