Błąd dostępu do właściwości obiektu w JavaScript
Podczas dostępu do właściwości obiektu nazwa tej właściwości nie może być przechowywana w zmiennej. Przyjrzyjmy się, dlaczego. Załóżmy, że mamy następujący obiekt:
let obj = {a: 1, b: 2, c: 3};
Załóżmy, że w zmiennej przechowywana jest nazwa właściwości, której wartość chcemy uzyskać:
let key = 'a';
Spróbujmy uzyskać dostęp do właściwości obiektu, używając tej zmiennej:
console.log(obj.key); // undefined
Powyższy kod nie będzie działał, ponieważ
faktycznie szukamy właściwości o nazwie
'key', a nie właściwości, której nazwa jest przechowywana
w zmiennej key. Oznacza to, że faktycznie
nasz kod jest równoważny następującemu:
console.log(obj['key']);
Jedynym sposobem dostępu do elementu za pomocą klucza ze zmiennej jest zapisanie tej zmiennej w nawiasach kwadratowych:
console.log(obj[key]);
Popraw błąd popełniony w następującym kodzie:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Popraw błąd popełniony w następującym kodzie:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);