A külső és belső függvények paraméterei JavaScriptben

Tegyük úgy, hogy mind a külső függvény, mind a belső fogadjon paramétereket:

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

Adjuk át a külső függvény paraméterét a belső függvény hívásakor:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // kiírja 1-et
  }
  
  func(num); //!! átadjuk a paramétert
}

test(1); // számot adunk át paraméterként

Így a belső függvényben hozzáférhető lesz a num változó, mint a szülőfüggvény külső változója, és a localNum változó, ami a belső függvény lokális változója.

Mindkét változó értéke ugyanaz lesz:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // kiírja 1-et
    console.log(localNum); // kiírja 1-et
  }
  
  func(num);
}

test(1);

A köztük lévő különbség a következő: ha a belső függvényben megváltoztatjuk a num változót - az a külső függvényben is megváltozik:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // megváltoztatjuk a num változót
  }
  
  func(num);   // átadjuk a paramétert
  console.log(num);  // kiírja 2-t
}

test(1); // számot adunk át paraméterként

A localNum változó viszont lokális lesz. Annak megváltoztatása nem fog változást eredményezni a külső függvényben. Maga a localNum változó sem lesz látható a belső függvényen kívül:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // megváltoztatjuk a num változót
  }
  
  func(num); // átadjuk a paramétert
}

test(1); // számot adunk át paraméterként
Задание 1

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

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

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

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

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

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

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

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

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

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

Határozd meg, kód futtatása nélkül, hogy mi jelenik meg a konzolon:

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

test(1);