Objektien viittauksellinen välitys JavaScriptissä
Taulukot ja objektit eroavat jossain määrin muita primitiivisiä tietotyyppejä. Erona on, että muuttuja, joka säilyttää taulukon, ei itse asiassa sisällä sitä, vaan vain viittaa siihen.
Käytännössä tämä tarkoittaa, että kun objekti tallennetaan toiseen muuttujaan, molemmat muuttujat viittaavat samaan objektiin. Kokeillaan käytännössä. Olkoon meillä seuraava objekti:
let obj1 = {a: 1, b: 2, c: 3};
Tallennetaan se yhdestä muuttujasta toiseen:
let obj2 = obj1;
Muutetaan yhtä muuttujista:
obj2.a = '!';
Tuloksena muutokset näkyvät myös toisessa muuttujassa:
console.log(obj1); // {a: '!', b: 2, c: 3}
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);