JavaScript တွင် Closure များနှင့် Immediately Invoked Function Expression (IIFE)
သင်သိပြီးဖြစ်သည့်အတိုင်း၊ အမည်မဲ့ ဖန်ရှင်ကို ချက်ချင်းခေါ်ယူအသုံးပြု၍ ၎င်း၏ရလဒ်ကို အချို့သော variable များသို့ ထည့်ပေးနိုင်ပါသည်။
let result = function() {
return '!';
}();
console.log(result); // '!' ကို ပြသမည်
ချက်ချင်းခေါ်ယူအသုံးပြုသော ဖန်ရှင်ကို မကြာခဏ ကွင်းစကွင်းပတ်ထဲထည့်လေ့ရှိသော်လည်း တကယ်တော့ မလိုအပ်ပါ။ ဖန်ရှင်က ချက်ချင်းခေါ်ယူအသုံးပြုကြောင်း ချက်ချင်းသိရှိစေရန် ဤသို့လုပ်ဆောင်ခြင်းဖြစ်သည်။
let result = (function() {
return '!';
})();
console.log(result); // '!' ကို ပြသမည်
ယခု ချက်ချင်းခေါ်ယူအသုံးပြုလိုက်သော ဖန်ရှင်၏ ရလဒ်က အမည်မဲ့ ဖန်ရှင်တစ်ခု ဖြစ်ပါစေ။
let func = (function() {
return function() {
console.log('!');
}
})();
func(); // '!' ကို ပြသမည်
ပြန်ပေးသော ဖန်ရှင်သည် closure ထဲတွင်
num variable ကို သိမ်းဆည်းထားစေရန်
လုပ်ဆောင်ကြည့်ပါမည်။
let func = (function() {
let num = 1;
return function() {
console.log(num);
}
})();
num++ ကို ထပ်မံထည့်သွင်းပါက
func ဖန်ရှင်သည် အဆင်သင့်ဖြစ်နေသော
စာရင်းကောက်ယူသူတစ်ခု ဖြစ်လာမည်။
let func = (function() {
let num = 1;
return function() {
console.log(num);
num++;
}
})();
func(); // 1 ကို ပြသမည်
func(); // 2 ကို ပြသမည်
func(); // 3 ကို ပြသမည်
func(); // 4 ကို ပြသမည်
func(); // 5 ကို ပြသမည်
ကျွန်ုပ်၏ကုဒ်ကို မကြည့်ဘဲ၊ သင့်ဘာသာသင် ထိုကဲ့သို့သော စာရင်းကောက်ယူသူတစ်ခုကို အကောင်အထည်ဖော်ပါ။
စာရင်းကောက်ယူသူ၏လုပ်ဆောင်ချက်ကို ပြင်ဆင်ပြီး
5 အထိသာ ရေတွက်ကာ ထို့နောက် အစမှ
ပြန်စရေတွက်စေပါ။