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:
javascriptlet obj1 = {a: 1, b: 2, c: 3};
Tallennetaan se yhdestä muuttujasta toiseen:
javascriptlet obj2 = obj1;
Muutetaan yhtä muuttujista:
javascriptobj2.a = '!';
Tuloksena muutokset näkyvät myös toisessa muuttujassa:
javascriptconsole.log(obj1); // {a: '!', b: 2, c: 3}
Задание 1
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Задание 2
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Задание 3
Suorittamatta koodia, päättele, mitä tulostuu konsoliin:
javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);