JavaScript-da daşarky we içerki funksiýalaryň parametrleri

Geliň, daşarky funksiýanyň hem, içerki funksiýanyň hem parametrler kabul etmegini edeliň:

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

Daşarky funksiýanyň parametrini içerki funksiýanyň çagyryşyna geçireliň:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1-ni görkezer
  }
  
  func(num); //!! parametri geçirýäris
}

test(1); // parametr hökmünde san geçirýäris

Şonuň üçin içerki funksiýada num üýtgeýjisi ene funksiýadan daşarky üýtgeýji hökmünde elýeterli bolar we localNum üýtgeýjisi içerki funksiýanyň ýerli üýtgeýjisi hökmünde bolar.

Bu iki üýtgeýjiniň hem bahalary deň bolar:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // 1-ni görkezer
    console.log(localNum); // 1-ni görkezer
  }
  
  func(num);
}

test(1);

Olaryň arasyndaky tapawut şeýle bolar: eger içerki funksiýada num üýtgeýjisini üýtgetsek - ol daşarky funksiýada hem üýtger:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num üýtgeýjisini üýtgedýäris
  }
  
  func(num);   // parametri geçirýäris
  console.log(num);  // 2-ni görkezer
}

test(1); // parametr hökmünde san geçirýäris

localNum üýtgeýjisi bolsa ýerli bolar. Onyň üýtgemegi daşarky funksiýada hiç hili üýtgeşikliklere getirmez. Özi hem localNum üýtgeýjisi içerki funksiýanyň daşyndan görünmez:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num üýtgeýjisini üýtgedýäris
  }
  
  func(num); // parametri geçirýäris
}

test(1); // parametr hökmünde san geçirýäris
Задание 1

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

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

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

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

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

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

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

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

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

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

Kody işletmezden öň, konsola näme çykajakdygyny kesgitleň:

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

test(1);