Transmiterea obiectelor prin referință în JavaScript
Array-urile și obiectele se diferențiază oarecum de celelalte tipuri de date primitive. Diferența constă în faptul că variabila care stochează array-ul, de fapt nu îl conține, ci doar face referire la acesta.
În practică, aceasta înseamnă că atunci când scriem un obiect într-o altă variabilă, ambele variabile vor face referire la același obiect. Să încercăm în practică. Să presupunem că avem următorul obiect:
let obj1 = {a: 1, b: 2, c: 3};
Să-l atribuim dintr-o variabilă într-alta:
let obj2 = obj1;
Să modificăm una dintre variabile:
obj2.a = '!';
Ca rezultat, modificările vor fi vizibile și în cealaltă variabilă:
console.log(obj1); // {a: '!', b: 2, c: 3}
Fără a rula codul, determinați ce va fi afișat în consolă:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Fără a rula codul, determinați ce va fi afișat în consolă:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Fără a rula codul, determinați ce va fi afișat în consolă:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);