JavaScript හි ශ්‍රිත වලට බාහිර විචල්ය වෙත ප්‍රවේශය

පහත කේතය සලකා බලමු:

javascriptlet num = 1; // විචල්‍යයේ අගය සකසයි

function func() {
  console.log(num); // එය කොන්සෝලයේ ප්‍රදර්ශනය කරයි
}

func(); // ශ්‍රිතය කැඳවයි

මම කලින් සඳහන් කළ පරිදි, විචල්‍යයේ අගය ශ්‍රිතය නිර්වචනය කිරීමට පෙර තිබීම අනිවාර්‍ය නොවේ, ප්‍රධාන කාරණය නම් එය එහි කැඳවීමට පෙර පිහිටා තිබිය යුතුය:

javascriptfunction func() {
  console.log(num);
}

let num = 1;
func();

ඇත්තටම මෙය හරියටම එසේ නොවේ. අපගේ ශ්‍රිතය එය කැඳවීමට පෙරවත් විචල්‍යයේ අගය num දන්නා අතර:

javascriptlet num = 1;

function func() {
  console.log(num); // ශ්‍රිතය දැනටමත් දන්නවා num = 1 බව
}

මෙන්න වඩාත් සංකීර්ණ උදාහරණයක්:

javascriptlet num = 1; // මෙම මොහොතේ ශ්‍රිතය දැන ගනී num = 1 බව

function func() {
  console.log(num);
}

num = 2; // මෙම මොහොතේ ශ්‍රිතය දැන ගනී num = 2 බව

ශ්‍රිතය කැඳවීම් එකතු කරමු:

javascriptlet num = 1; // මෙම මොහොතේ ශ්‍රිතය දැන ගනී num = 1 බව
func(); // 1 ප්‍රදර්ශනය කරයි

function func() {
  console.log(num);
}

func(); // 1 ප්‍රදර්ශනය කරයි
num = 2; // මෙම මොහොතේ ශ්‍රිතය දැන ගනී num = 2 බව
func(); // 2 ප්‍රදර්ශනය කරයි

තවත් වතාවක්: ඇත්තටම ශ්‍රිතය අගයන් දන්නා අතර බාහිර විචල්‍යවල, කැඳවීමට ලක් නොවුණද.