Överföring av objekt genom referens i JavaScript
Arrayer och objekt skiljer sig något från andra primitiva datatyper. Skillnaden är att en variabel som lagrar en array faktiskt inte innehåller den, utan bara refererar till den.
I praktiken betyder detta att när ett objekt skrivs till en annan variabel, kommer båda variablerna att referera till samma objekt. Låt oss prova i praktiken. Låt oss säga att vi har följande objekt:
let obj1 = {a: 1, b: 2, c: 3};
Låt oss tilldela det från en variabel till en annan:
let obj2 = obj1;
Låt oss ändra en av variablerna:
obj2.a = '!';
Som ett resultat kommer förändringarna att vara synliga även i den andra variabeln:
console.log(obj1); // {a: '!', b: 2, c: 3}
Utan att köra koden, bestäm vad som kommer att skrivas ut i konsolen:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Utan att köra koden, bestäm vad som kommer att skrivas ut i konsolen:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Utan att köra koden, bestäm vad som kommer att skrivas ut i konsolen:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);