JavaScript တွင် Object ၏ Property ကို ရည်ညွှန်းရာတွင် မှားယွင်းမှု
Object တစ်ခု၏ property ကို ရည်ညွှန်းသည့်အခါ ထို property ၏ အမည်ကို variable တစ်ခုထဲတွင် သိမ်းထား၍မရပါ။ အဘယ်ကြောင့်ဆိုတာ ကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် အောက်ပါ object ရှိသည်ဆိုပါစို့။
let obj = {a: 1, b: 2, c: 3};
Variable တစ်ခုထဲတွင် ကျွန်ုပ်တို့ရယူလိုသော တန်ဖိုး၏ property အမည် သိမ်းထားသည်ဆိုပါစို့။
let key = 'a';
ထို variable ကိုအသုံးပြု၍ object ၏ property ကို ရည်ညွှန်းကြည့်ကြမည်။
console.log(obj.key); // undefined
အထက်ပါ code သည် အလုပ်မလုပ်ပါ။ အဘယ်ကြောင့်ဆိုသော် တကယ်တော့ ကျွန်ုပ်တို့သည် variable key တွင် သိမ်းထားသော အမည်ရှိသည့် property ကို မဟုတ်ဘဲ အမည် 'key' ရှိသည့် property ကို ရှာနေသောကြောင့်ဖြစ်သည်။ ဆိုလိုသည်မှာ တကယ့်တကယ်တွင် ကျွန်ုပ်တို့၏ code သည် အောက်ပါ code နှင့် အတူတူပင်ဖြစ်သည်။
console.log(obj['key']);
Variable တစ်ခုမှ key အသုံးပြု၍ element တစ်ခုကို ရည်ညွှန်းရန် တစ်ခုတည်းသော နည်းလမ်းမှာ ထို variable ကို စတုရန်းကွင်းထဲတွင် ရေးသားခြင်းပင်ဖြစ်သည်။
console.log(obj[key]);
အောက်ပါ code တွင် ပြုလုပ်မိသော အမှားကို ပြင်ဆင်ပါ။
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
အောက်ပါ code တွင် ပြုလုပ်မိသော အမှားကို ပြင်ဆင်ပါ။
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);