Prosleđivanje objekata po referenci u JavaScript-u

Nizovi i objekti se donekle razlikuju od ostalih primitivnih tipova podataka. Razlika je u tome što promenljiva koja čuva niz, zapravo ne sadrži niz, već samo referencira na njega.

U praksi to znači da pri upisu objekta u drugu promenljivu, obe promenljive će referencirati na isti objekat. Hajde da probamo u praksi. Neka imamo sledeći objekat:

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

Dodelimo ga iz jedne promenljive u drugu:

javascriptlet obj2 = obj1;

Izmenimo jednu od promenljivih:

javascriptobj2.a = '!';

Kao rezultat, izmene će biti vidljive i u drugoj promenljivoj:

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

Bez pokretanja koda, odredite šta će biti prikazano u konzoli:

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

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

Bez pokretanja koda, odredite šta će biti prikazano u konzoli:

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

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

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

Bez pokretanja koda, odredite šta će biti prikazano u konzoli:

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

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

console.log(arr2);