Օբյեկտի հատկությանը դիմելու սխալը JavaScript-ում

Օբյեկտի հատկությանը դիմելիս այդ հատկության անունը չի կարող պահպանվել փոփոխականում: Եկեք տեսնենք, թե ինչու: Ենթադրենք, մենք ունենք հետևյալ օբյեկտը:

javascriptlet obj = {a: 1, b: 2, c: 3};

Ենթադրենք փոփոխականում պահվում է այն հատկության անունը, որի արժեքը մենք ցանկանում ենք ստանալ.

javascriptlet key = 'a';

Փորձենք դիմել օբյեկտի հատկությանը` օգտագործելով այդ փոփոխականը.

javascriptconsole.log(obj.key); // undefined

Տրված կոդը չի աշխատի, քանի որ փաստորեն մենք փնտրում ենք «key» անունով հատկություն, այլ ոչ թե այն հատկությունը, որի անունը պահվում է key փոփոխականում: Այսինքն՝ փաստորեն մեր կոդը համարժեք է հետևյալին.

javascriptconsole.log(obj['key']);

Փոփոխականից ստացված բանալիով տարրին դիմելու միակ եղանակը այդ փոփոխականը քառակուսի փակագծերում գրելն է.

javascriptconsole.log(obj[key]);
Задание 1

Ուղղեք հաջորդ կոդում թույլ տրված սխալը.

javascriptlet obj = {x: 1, y: 2, z: 3};

let prop = 'x';
console.log(obj.prop);
Задание 2

Ուղղեք հաջորդ կոդում թույլ տրված սխալը.

javascriptlet obj = {x: 1, y: 2, z: 3};

let prop = 'x';
console.log(obj['prop']);