Upataji wa Vigeugeu vya Nje kwa Kazi katika JavaScript

Wacha tuchunguze msimbo ufuatao:

javascriptlet num = 1; // weka thamani ya kigeu

function func() {
  console.log(num); // kuionyesha kwenye koni
}

func(); // ita kazi

Kama nilivyotaja hapo awali, thamani ya kigeu si lazima iwe mbele ya ufafanuzi wa kazi, jambo kuu, ni kwamba iwe mbele ya kiitiko chake:

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

let num = 1;
func();

Kweli hii si sahihi kabisa. Kazi yetu hata kabla ya kiitiko chake inajua thamani ya kigeu num:

javascriptlet num = 1;

function func() {
  console.log(num); // kazi tayari inajua kuwa num = 1
}

Huu ni mfano mgumu zaidi:

javascriptlet num = 1; // kazi wakati huu inapata habari kuwa num = 1

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

num = 2; // kazi wakati huu inapata habari kuwa num = 2

Wacha tuongeze miitiko ya kazi:

javascriptlet num = 1; // kazi wakati huu inapata habari kuwa num = 1
func(); // itaonyesha 1

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

func(); // itaonyesha 1
num = 2; // kazi wakati huu inapata habari kuwa num = 2
func(); // itaonyesha 2

Kwa mara nyingine tena: kweli kazi inajua thamani za vigeugeu vya nje, hata bila kuitwa.