Fejl ved tilgang til objektegenskab i JavaScript
Når du tilgår en objektegenskab, kan navnet på denne egenskab ikke lagres i en variabel. Lad os se hvorfor. Antag, at vi har følgende objekt:
let obj = {a: 1, b: 2, c: 3};
Antag, at variablen indeholder navnet på egenskaben, hvis værdi vi ønsker at få:
let key = 'a';
Lad os prøve at tilgå objektets egenskab ved at bruge denne variabel:
console.log(obj.key); // undefined
Den viste kode vil ikke virke, fordi
vi faktisk søger efter en egenskab med navnet
'key', og ikke den egenskab, hvis navn er gemt
i variablen key. Det betyder, at
vores kode faktisk svarer til følgende:
console.log(obj['key']);
Den eneste måde at tilgå et element via en nøgle fra en variabel er at skrive denne variabel i firkantede parenteser:
console.log(obj[key]);
Ret fejlen begået i følgende kode:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Ret fejlen begået i følgende kode:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);