JavaScript ရှိ မချုပ်နှောင်ထားသော လုပ်ဆောင်ချက်၏ ကွန်တက်စ်
လုပ်ဆောင်ချက်တစ်ခုအတွင်း
this ကို ရည်ညွှန်းထားပြီး မည်သည့်အရာနှင့်မှ မချုပ်နှောင်ထားသောအခါ
ဘာဖြစ်သွားမလဲဆိုတာ ကြည့်ရအောင်။
function func() {
console.log(this);
}
func();
ဤကိစ္စတွင် ရလဒ်သည် ကျွန်ုပ်တို့အသုံးပြုနေသော
မုဒ်သည်
ကြပ်မတ်ထားသော မုဒ်လား မဟုတ်လားဆိုတဲ့အပေါ် မူတည်ပါတယ်။ ကြပ်မတ်ထားသော မုဒ်မဟုတ်ပါက
this ထဲတွင်
window သို့ ရည်ညွှန်းချက် ရှိနေပါမည်။
function func() {
console.log(this); // window သို့ ရည်ညွှန်းချက်
}
func();
သို့သော် မုဒ်သည် ကြပ်မတ်ထားပါက
this ထဲတွင်
undefined ရှိနေပါမည်။
"use strict";
function func() {
console.log(this); // undefined
}
func();
အထက်ပါအချက်များကို ကြည့်ပြီး ကြပ်မတ်ထားသော မုဒ်တွင်
this သည် အမြဲ
undefined ဖြစ်နေမည်ဟု ထင်စရာရှိသည်။ သို့သော် မဟုတ်ပါ။ လုပ်ဆောင်ချက်အပြင်ဘက်တွင်
this ကို ရိုးရိုးရှင်းရှင်း ထုတ်ပြလိုက်ပါက ၎င်းထဲတွင်
မုဒ်ကွဲပြားမှုမရှိဘဲ window သို့ ရည်ညွှန်းချက် ရှိနေပါမည်။
"use strict";
console.log(this); // this ထဲတွင် window သို့ ရည်ညွှန်းချက်
ကောက်ချက်
မည်သည့် လုပ်ဆောင်ချက်အတွင်းမဆို this ကို ရေးနိုင်ပြီး၊
၎င်းသည် JavaScript ၏ မည်သည့်အမှားကိုမျှ ဖြစ်ပေါ်စေမည် မဟုတ်ပါ။
သို့သော် ဤ this ထဲတွင် အဘယ်အရာ ပါဝင်မည်ကိုမူ လုပ်ဆောင်ချက်ခေါ်ယူမှုမပြုမချင်း
သတ်မှတ်ထားခြင်း မရှိပါ။ ထို့အပြင် လုပ်ဆောင်ချက်၏ မတူညီသော အကြိမ်ကြိမ်ခေါ်ယူမှုတွင်
this သည် မတူညီသော တန်ဖိုးများ ရယူနိုင်သည်။ အားလုံးသည်
လုပ်ဆောင်ချက်ကို မည်သည့် ကွန်တက်စ်အောက်တွင် ခေါ်ယူသည်ဆိုသော အပေါ်တွင် မူတည်နေသည်။