Օբյեկտի հատկությանը դիմելու սխալը JavaScript-ում
Օբյեկտի հատկությանը դիմելիս այդ հատկության անունը չի կարող պահպանվել փոփոխականում: Եկեք տեսնենք, թե ինչու: Ենթադրենք, մենք ունենք հետևյալ օբյեկտը:
let obj = {a: 1, b: 2, c: 3};
Ենթադրենք փոփոխականում պահվում է այն հատկության անունը, որի արժեքը մենք ցանկանում ենք ստանալ.
let key = 'a';
Փորձենք դիմել օբյեկտի հատկությանը` օգտագործելով այդ փոփոխականը.
console.log(obj.key); // undefined
Տրված կոդը չի աշխատի, քանի որ
փաստորեն մենք փնտրում ենք «key» անունով հատկություն,
այլ ոչ թե այն հատկությունը, որի անունը պահվում է
key փոփոխականում: Այսինքն՝ փաստորեն
մեր կոդը համարժեք է հետևյալին.
console.log(obj['key']);
Փոփոխականից ստացված բանալիով տարրին դիմելու միակ եղանակը այդ փոփոխականը քառակուսի փակագծերում գրելն է.
console.log(obj[key]);
Ուղղեք հաջորդ կոդում թույլ տրված սխալը.
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Ուղղեք հաջորդ կոդում թույլ տրված սխալը.
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);