JavaScript ရှိ အမည်ပေးထားသော Function Expressions
အောက်ပါကဲ့သို့ Function Expression တစ်ခု ကျွန်ုပ်တို့တွင် ရှိသည်ဆိုပါစို့။
let test = function() {
console.log('!');
};
test(); // '!' ကို ပြသမည်
ကျွန်ုပ်တို့၏ function ကို func ဟူသော အမည်ပေးကြပါစို့။
let test = function func() {
console.log('!');
};
test();
သင်သိပြီးဖြစ်သည့်အတိုင်း၊ ဤအမည်ဖြင့် function ကို ခေါ်ယူအသုံးပြု၍မရပါ။
let test = function func() {
console.log('!');
};
test(); // '!' ကို ပြသမည်
func(); // အမှားပြန်ပေးမည်
ခေါ်ယူအသုံးပြု၍မရပါက function ကို အမည်ပေးရန် အဘယ်ကြောင့်လိုအပ်သနည်း။ အကြောင်းမှာ ဤအမည်သည် function အပြင်ဘက်မှ မရနိုင်သော်လည်း function အတွင်းမှ ရနိုင်သောကြောင့်ဖြစ်သည်။
စစ်ဆေးကြည့်ရအောင်။
let test = function func() {
console.log(func); // function သည် ၎င်း၏ မူရင်းကုဒ်ကို ပြသမည်
};
test(); // function ကို ခေါ်ယူသည်
ကျွန်ုပ်တို့၏ function ကို ၎င်းအတွင်းမှပင် ခေါ်ယူကြည့်ပါ။
let test = function func() {
console.log('!'); // '!' ကို ပြသသည်
func(); // မိမိကိုယ်ကို ခေါ်ယူသည်
};
test();
ဤကုဒ်ကို run ပါက console တွင် အဆုံးမရှိသော အကြိမ်အရေအတွက်ဖြင့် ပြသသွားမည်။
တကယ်တော့ ကျွန်ုပ်တို့၏ function ကို ၎င်းအတွင်းမှ
func အဖြစ်သာမက test အဖြစ်လည်း
ခေါ်ယူနိုင်သည်။
let test = function func() {
console.log('!');
test(); // မိမိကိုယ်ကို ခေါ်ယူသည်
};
test();
ကွာခြားချက်က ဘာလဲ။ ကွာခြားချက်မှာ
test အမည်သည် variable တစ်ခုသက်သက်သာဖြစ်ခြင်းပါ။
Script အလုပ်လုပ်နေစဉ် ကျွန်ုပ်တို့၏ function သည်
တစ်ခြား variable ထဲသို့ ရေးသွင်းခြင်းခံရနိုင်ပြီး သို့မဟုတ်
parameter အဖြစ် ပေးပို့ခြင်းခံရနိုင်သည် -
ထိုသို့ဖြစ်ပါက variable test နှင့် function
အကြားဆက်သွယ်မှု ပျောက်ကွယ်သွားနိုင်သည်။
func အမည်မှာမူ function အတွင်းမှ ၎င်းကို
ခေါ်ယူနိုင်စေရန် function နှင့် တင်းကျပ်စွာ ချိတ်ဆက်ထားသည်။
ဤကဲ့သို့ function အမည်ပါသော Function Expression များကို အမည်ပေးထားသော Function Expressions ဟုခေါ်သည်။