⊗jsPmClLEA 261 of 505 menu

JavaScript တွင် လက်ဆစ်ဆန်သော ဝန်းကျင် လုပ်ဆောင်ချက်များ၏ အသုံးပြုမှု

ကိုယ်ပိုင်ရလဒ်အဖြစ် အခြားလုပ်ဆောင်ချက်ကို ပြန်ပေးသည့် လုပ်ဆောင်ချက်ရှိသည်ဆိုပါစို့။

function test() { return function() { } }

မိဘလုပ်ဆောင်ချက်တွင် မည်သည့်အရာမဆို ကိန်ရှင်များရှိပါက၊ ထိုကိန်ရှင်များသည် ပြန်လာမည့်လုပ်ဆောင်ချက်၏ လက်ဆစ်ဆန်သော ဝန်းကျင်ထဲတွင် ပါဝင်လိမ့်မည်။

function test() { let num = 1; // မိဘလုပ်ဆောင်ချက်၏ ကိန်ရှင် return function() { // လက်ဆစ်ဆန်သော ဝန်းကျင် = {num: 1} } }

ကျွန်ုပ်တို့၏ ပြန်လာမည့်လုပ်ဆောင်ချက်၏ ကုဒ်ထဲတွင် console.log ကို ရေးကြပါစို့၊ num ကိန်ရှင်၏ တန်ဖိုးကို ထုတ်ပြသည်။

function test() { let num = 1; return function() { console.log(num); } }

ယခု မိဘလုပ်ဆောင်ချက် test ကို ခေါ်ကြပါစို့ နှင့် ၎င်း၏ အလုပ်လုပ်ခြင်း ရလဒ်ကို func ကိန်ရှင်ထဲသို့ ရေးမှတ်ပါမည်။

function test() { let num = 1; return function() { console.log(num); } } let func = test();

func ကိန်ရှင်ထဲသို့ ပြန်လာမည့် လုပ်ဆောင်ချက် ရေးမှတ်သွားလိမ့်မည်။ ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်ကို ခေါ်ကြည့်ပါစို့ - ၎င်း၏ ရလဒ်အဖြစ် ကိန်ရှင် num ၏ အကြောင်းအရာကို ထုတ်ပြလိမ့်မည်။

function test() { let num = 1; return function() { console.log(num); } } let func = test(); func(); // 1 ကိုထုတ်ပြလိမ့်မည်

လုပ်ဆောင်ချက်အပြင်ဘက်တွင် ကိန်ရှင် num ကို ရိုးရိုးရှင်းရှင်းထုတ်ရန် ကြိုးစားပါက - ၎င်းသည် မရရှိနိုင်ပါ။

function test() { let num = 1; return function() { console.log(num); } } console.log(num); // ကိန်ရှင် num သည် ဤနေရာတွင် မရရှိနိုင်ပါ

သင်မြင်သည့်အတိုင်း၊ ဒေသဆိုင်ရာကိန်ရှင် num သည် ကျွန်ုပ်တို့၏ လုပ်ဆောင်ချက်၏ လက်ဆစ်ဆန်သော ဝန်းကျင်သို့ ချိတ်ဆက်မိသွားပြီး ယခု၊ မည်သည့်နေရာတွင်မဆို ဤလုပ်ဆောင်ချက်ကို ခေါ်ဆိုခြင်းဖြင့်၊ ကိန်ရှင် num ၏ တန်ဖိုးကို ရရှိနိုင်ပြီဖြစ်သည်၊ ခေါ်ဆိုသည့်နေရာတွင် ဤကိန်ရှင်ကိုယ်တိုင် မရရှိနိုင်သည့်တိုင် ဖြစ်သည်။

တကယ်တော့ အလားတူရလဒ်ကို ကိန်ရှင် num ကို ကမ္ဘာလုံးဆိုင်ရာအဖြစ် ဖန်တီးခြင်းဖြင့် ရရှိနိုင်ပါသည်။

function test() { return function() { console.log(num); } } let num = 1; // ကမ္ဘာလုံးဆိုင်ရာ ကိန်ရှင် let func = test(); func(); // 1 ကိုထုတ်ပြလိမ့်မည်

သို့ရာတွင်၊ ဤနေရာတွင် သိသိသာသာ ကွာခြားမှုရှိပါမည်။ အသစ်သောဗားရှင်းတွင် ကိန်ရှင် num ကို လုပ်ဆောင်ချက်များအပြင်ဘက်တွင် ပြောင်းလဲနိုင်သည် (အဘယ်ကြောင့်ဆိုသော် ၎င်းသည် ကမ္ဘာလုံးဆိုင်ရာဖြစ်သောကြောင့်)၊ အဟောင်းတွင် - မရပါ။

ကုဒ်ကို မစတင်ဘဲ၊ ကွန်ဆိုးထဲသို့ ဘာထွက်လာမည်ကို သတ်မှတ်ပါ။

function test() { let num1 = 1; let num2 = 2; return function() { return num1 + num2; } } let func = test(); console.log(func());

ကုဒ်ကို မစတင်ဘဲ၊ ကွန်ဆိုးထဲသို့ ဘာထွက်လာမည်ကို သတ်မှတ်ပါ။

function test() { let num1 = 1; let num2 = 2; return function() { return num1 + num2; } } console.log(test()());

ကုဒ်ကို မစတင်ဘဲ၊ ကွန်ဆိုးထဲသို့ ဘာထွက်လာမည်ကို သတ်မှတ်ပါ။

function test() { let num1 = 1; return function() { return num1 + num2; } } let num2 = 2; let func = test(); console.log(func());

ကုဒ်ကို မစတင်ဘဲ၊ ကွန်ဆိုးထဲသို့ ဘာထွက်လာမည်ကို သတ်မှတ်ပါ။

function test() { let num = 1; return function() { return num; } } let num = 2; let func = test(); console.log(func());
မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်