Fout bij toegang tot eigenschap van object in JavaScript
Bij het benaderen van een eigenschap van een object kan de naam van die eigenschap niet in een variabele worden opgeslagen. Laten we eens kijken waarom. Stel dat we het volgende object hebben:
let obj = {a: 1, b: 2, c: 3};
Stel dat in een variabele de naam van de eigenschap is opgeslagen, waarvan we de waarde wilten verkrijgen:
let key = 'a';
Laten we proberen de eigenschap van het object te benaderen, gebruikmakend van deze variabele:
console.log(obj.key); // undefined
De bovenstaande code werkt niet, omdat
we in feite op zoek zijn naar een eigenschap met de naam
'key', en niet naar de eigenschap waarvan de naam is opgeslagen
in de variabele key. Dat wil zeggen, in feite
is onze code equivalent aan het volgende:
console.log(obj['key']);
De enige manier om een element te benaderen via een sleutel uit een variabele is door deze variabele tussen vierkante haken te schrijven:
console.log(obj[key]);
Herstel de fout die gemaakt is in de volgende code:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Herstel de fout die gemaakt is in de volgende code:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);