Fel vid åtkomst av objektets egenskap i JavaScript
När du kommer åt en objekts egenskap kan namnet på denna egenskap inte lagras i en variabel. Låt oss se varför. Låt oss säga att vi har följande objekt:
let obj = {a: 1, b: 2, c: 3};
Låt oss säga att variabeln innehåller namnet på egenskapen vars värde vi vill få:
let key = 'a';
Låt oss försöka komma åt objektets egenskap genom att använda denna variabel:
console.log(obj.key); // undefined
Koden ovan kommer inte att fungera, eftersom
i praktiken letar vi efter en egenskap med namnet
'key', och inte egenskapen vars namn lagras
i variabeln key. Det vill säga, i praktiken
är vår kod ekvivalent med följande:
console.log(obj['key']);
Det enda sättet att komma åt ett element med en nyckel från en variabel är att skriva denna variabel inom hakparenteser:
console.log(obj[key]);
Rätta felet som gjorts i följande kod:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Rätta felet som gjorts i följande kod:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);