Objektide edastamine viidete kaudu JavaScriptis
Massiivid ja objektid erinevad mõnevõrra teistest primitiivsetest andmetüüpidest. Erinevus seisneb selles, et muutuja, mis salvestab massiivi, tegelikult ei sisalda seda, vaid lihtsalt viitab sellele.
Praktikas tähendab see, et objekti teise muutuja sisse panemisel viitavad mõlemad muutujad samale objektile. Proovime seda praktikas. Olgu meil järgmine objekt:
let obj1 = {a: 1, b: 2, c: 3};
Paneme selle ühest muutujast teise:
let obj2 = obj1;
Muudame üht muutujat:
obj2.a = '!';
Tulemusena on muutused nähtavad ka teises muutujas:
console.log(obj1); // {a: '!', b: 2, c: 3}
Koodi käivitamata määrake, mis prinditakse konsooli:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
console.log(arr2);
Koodi käivitamata määrake, mis prinditakse konsooli:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[1] = 'b';
console.log(arr1);
Koodi käivitamata määrake, mis prinditakse konsooli:
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1[0] = 'a';
arr2[0] = 'b';
console.log(arr2);