ობიექტის თვისებაზე მიწვდომის შეცდომა 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']);