JavaScript တွင် အပြင်ဘက်နှင့် အတွင်းဘက်လုပ်ဆောင်ချက်များ၏ ပါရာမီတာများ
အပြင်ဘက်လုပ်ဆောင်ချက်နှင့် အတွင်းဘက်လုပ်ဆောင်ချက် နှစ်ခုစလုံးသည် ပါရာမီတာများကို လက်ခံရရှိစေရန် ပြုလုပ်ကြပါစို့:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
အပြင်ဘက်လုပ်ဆောင်ချက်၏ ပါရာမီတာကို အတွင်းဘက်လုပ်ဆောင်ချက်ကို ခေါ်ယူသည့်နေရာတွင် ပို့ဆောင်ကြပါစို့:
function test(num) {
function func(localNum) {
console.log(localNum); // 1 ကို ပြသမည်
}
func(num); //!! ပါရာမီတာကို ပို့ဆောင်သည်
}
test(1); // ဂဏန်းတစ်လုံးကို ပါရာမီတာအဖြစ် ပို့ဆောင်သည်
ရလဒ်အနေဖြင့် အတွင်းဘက်လုပ်ဆောင်ချက်အတွင်း မိဘလုပ်ဆောင်ချက်မှ အပြင်ဘက်ကိန်းရှင်အဖြစ် num ကိန်းရှင်နှင့် အတွင်းဘက်လုပ်ဆောင်ချ်၏ ဒေသဆိုင်ရာကိန်းရှင်ဖြစ်သော localNum ကိန်းရှင်တို့ကို အသုံးပြုနိုင်မည်ဖြစ်သည်။
ထိုကိန်းရှင်နှစ်ခုစလုံးတွင် တူညီသော တန်ဖိုးများ ရှိကြမည်:
function test(num) {
function func(localNum) {
console.log(num); // 1 ကို ပြသမည်
console.log(localNum); // 1 ကို ပြသမည်
}
func(num);
}
test(1);
၎င်းတို့ကြား ခြားနားချက်မှာ: အတွင်းဘက်လုပ်ဆောင်ချက်အတွင်း num ကိန်းရှင်ကို ပြောင်းလဲပါက ၎င်းသည် အပြင်ဘက်လုပ်ဆောင်ချက်အတွင်း၌လည်း ပြောင်းလဲသွားမည်ဖြစ်သည်:
function test(num) {
function func(localNum) {
num = 2; // num ကိန်းရှင်ကို ပြောင်းလဲသည်
}
func(num); // ပါရာမီတာကို ပို့ဆောင်သည်
console.log(num); // 2 ကို ပြသမည်
}
test(1); // ဂဏန်းတစ်လုံးကို ပါရာမီတာအဖြစ် ပို့ဆောင်သည်
localNum ကိန်းရှင်သည် ဒေသဆိုင်ရာဖြစ်လိမ့်မည်။
၎င်း၏ပြောင်းလဲမှုများသည် အပြင်ဘက်လုပ်ဆောင်ချက်အတွင်း မည်သည့်ပြောင်းလဲမှုကိုမျှ ဖြစ်စေမည်မဟုတ်ပါ။ ထို့အပြင် localNum ကိန်းရှင်ကိုယ်တိုင်သည်လည်း အတွင်းဘက်လုပ်ဆောင်ချက်၏ အပြင်ဘက်တွင် မမြင်နိုင်ပါ:
function test(num) {
function func(localNum) {
localNum = 2; // num ကိန်းရှင်ကို ပြောင်းလဲသည်
}
func(num); // ပါရာမီတာကို ပို့ဆောင်သည်
}
test(1); // ဂဏန်းတစ်လုံးကို ပါရာမီတာအဖြစ် ပို့ဆောင်သည်
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
ကုဒ်ကို မစတင်မီ မည်သည့်အရာကို console တွင် ပြသမည်ကို သတ်မှတ်ပါ:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);