JavaScript ရှိ Object အတွင်းရှိ Function
Symbols များကို အသုံးပြု၍ objects များထဲသို့ function များထည့်သွင်းနိုင်ပြီး ထို function များသည် ဖြတ်သန်းရေတွက်မှုတွင် ပါဝင်မည်မဟုတ်ပါ။ စမ်းကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် အောက်ပါ object ရှိသည်ဆိုပါစို့:
let obj = {a: 1, b: 2, c: 3};
Symbol တစ်ခုဖန်တီးပါမည်:
let sym = Symbol();
ကျွန်ုပ်တို့၏ symbol ကို key အဖြစ်အသုံးပြုကာ object ထဲတွင် function တစ်ခုရေးထည့်ပါမည်:
obj[sym] = function() {
console.log('!!!');
};
Object ကိုဖြတ်သန်းရေတွက်သောအခါ ကျွန်ုပ်တို့၏ function သည် ဖြတ်သန်းရေတွက်ခြင်းခံရမည်မဟုတ်ပါ:
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
ကျွန်ုပ်တို့၏ symbol ကို key အဖြစ်ပေးပို့၍ (ထို variable အတိုင်း) ကျွန်ုပ်တို့၏ function ကိုရယူပါမည်:
let func = obj[sym];
func();
ကုဒ်ကို တိုချုံးနိုင်ပါသည်:
obj[sym]();
လက်ရှိအချိန်ကို ပြသပေးမည့် function တစ်ခုကို object ထဲသို့ထည့်သွင်းပါ။ ထို function ကိုခေါ်ယူပါ။