Passaggio di oggetti per riferimento in JavaScript
Gli array e gli oggetti differiscono in qualche modo dai restanti tipi di dati primitivi. La differenza sta nel fatto che una variabile che memorizza un array, in realtà non lo contiene, ma semplicemente fa riferimento ad esso.
Nella pratica, ciò significa che quando si assegna un oggetto a un'altra variabile, entrambe le variabili faranno riferimento allo stesso identico oggetto. Proviamo nella pratica. Supponiamo di avere il seguente oggetto:
let obj1 = {a: 1, b: 2, c: 3};
Assegniamolo da una variabile a un'altra:
let obj2 = obj1;
Modifichiamo una delle variabili:
obj2.a = '!';
Di conseguenza, le modifiche saranno visibili anche nell'altra variabile:
console.log(obj1); // {a: '!', b: 2, c: 3}
Senza eseguire il codice, determina cosa verrà visualizzato in console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Senza eseguire il codice, determina cosa verrà visualizzato in console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Senza eseguire il codice, determina cosa verrà visualizzato in console:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);