Objekti omadusele pääsemise viga JavaScriptis
Objekti omadusele pääsemisel ei saa selle omaduse nime hoiustada muutujas. Vaatame, miks see nii on. Olgu meil antud järgmine objekt:
let obj = {a: 1, b: 2, c: 3};
Olgu muutujas hoitakse omaduse nime, mille väärtust me soovime saada:
let key = 'a';
Proovime pääseda objekti omadusele, kasutades seda muutujat:
console.log(obj.key); // undefined
Esitatud kood ei tööta, kuna
tegelikult otsime me omadust nimega
'key', mitte omadust, mille nimi on hoitud
muutujas key. See tähendab, et tegelikult
on meie kood samaväärne järgmisega:
console.log(obj['key']);
Ainus viis elemendile pääsemiseks võtme alusel muutujast on selle muutuja kirjutamine nurksulgudesse:
console.log(obj[key]);
Parandage viga järgmises koodis:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Parandage viga järgmises koodis:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);