JavaScriptda obyekt xususiyatiga murojaat qilishda xato
Obyektning xususiyatiga murojaat qilganda ushbu xususiyatning nomi o'zgaruvchida saqlanmaydi. Keling, nega bunday ekanligini ko'ramiz. Faraz qilaylik, bizda quyidagi obyekt mavjud:
let obj = {a: 1, b: 2, c: 3};
Faraz qilaylik, o'zgaruvchida biz olmoqchi bo'lgan xususiyatning nomi saqlanadi:
let key = 'a';
Keling, ushbu o'zgaruvchidan foydalanib, obyektning xususiyatiga murojaat qilishga harakat qilaylik:
console.log(obj.key); // undefined
Keltirilgan kod ishlamaydi, chunki
aslida biz nomi 'key' bo'lgan xususiyatni qidiramiz,
naki o'zgaruvchida key saqlanadigan nomga ega bo'lgan
xususiyatni. Ya'ni aslida
bizning kodimiz quyidagiga teng:
console.log(obj['key']);
O'zgaruvchidagi kalit bo'yicha elementga murojaat qilishning yagona usuli ushbu o'zgaruvchini kvadrat qavs ichida yozishdir:
console.log(obj[key]);
Quyidagi kodda qilingan xatoni tuzating:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Quyidagi kodda qilingan xatoni tuzating:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);