Parametrat e Funksioneve të Jashtme dhe të Brendshme në JavaScript

Le të bëjmë që edhe funksioni i jashtëm edhe ai i brendshëm të pranojnë parametra:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
}

Le ta kalojmë parametrin e funksionit të jashtëm në thirrjen e funksionit të brendshëm:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // do të shfaqë 1
  }
  
  func(num); //!! kalojmë parametrin
}

test(1); // kalojmë si parametër një numër

Kjo do të thotë se në funksionin e brendshëm do të jetë e mundur të përdoret ndryshorja num si një ndryshore e jashtme nga funksioni prind dhe ndryshorja localNum, e cila është një ndryshore lokale e funksionit të brendshëm.

Të dyja këto ndryshore do të kenë të njëjtat vlera:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // do të shfaqë 1
    console.log(localNum); // do të shfaqë 1
  }
  
  func(num);
}

test(1);

Ndryshimi midis tyre do të jetë në vijim: nëse në funksionin e brendshëm ndryshohet ndryshorja num - ajo do të ndryshojë edhe në funksionin e jashtëm:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // ndryshojmë ndryshoren num
  }
  
  func(num);   // kalojmë parametrin
  console.log(num);  // do të shfaqë 2
}

test(1); // kalojmë si parametër një numër

Ndërsa ndryshorja localNum do të jetë lokale. Ndryshimet e saj nuk do të shkaktojnë ndonjë ndryshim në funksionin e jashtëm. Dhe vetë ndryshorja localNum nuk do të jetë e dukshme jashtë funksionit të brendshëm:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // ndryshojmë ndryshoren num
  }
  
  func(num); // kalojmë parametrin
}

test(1); // kalojmë si parametër një numër
Задание 1

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num);
}

test(1);
Задание 2

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum);
  }
  
  func(num + 1);
}

test(1);
Задание 3

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num);
  }
  
  func(num + 1);
}

test(1);
Задание 4

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 5

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2;
  }
  
  func(num);
  console.log(localNum);
}

test(1);
Задание 6

Përcaktoni, pa ekzekutuar kodin, çfarë do të shfaqet në konsol:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);