Parameter Fungsi Eksternal dan Internal dalam JavaScript

Mari kita buat agar fungsi eksternal dan internal sama-sima menerima parameter:

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

Mari teruskan parameter fungsi eksternal ke pemanggilan fungsi internal:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // akan menampilkan 1
  }
  
  func(num); //!! meneruskan parameter
}

test(1); // meneruskan angka sebagai parameter

Jadi, dalam fungsi internal akan tersedia variabel num sebagai variabel eksternal dari fungsi induk dan variabel localNum, yang merupakan variabel lokal fungsi internal.

Kedua variabel ini akan memiliki nilai yang sama:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(num); // akan menampilkan 1
    console.log(localNum); // akan menampilkan 1
  }
  
  func(num);
}

test(1);

Perbedaan antara mereka adalah: jika dalam fungsi internal kita mengubah variabel num - variabel tersebut juga akan berubah di fungsi eksternal:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // mengubah variabel num
  }
  
  func(num);   // meneruskan parameter
  console.log(num);  // akan menampilkan 2
}

test(1); // meneruskan angka sebagai parameter

Sedangkan variabel localNum akan bersifat lokal. Perubahannya tidak akan menyebabkan perubahan apapun di fungsi eksternal. Dan variabel localNum itu sendiri tidak akan terlihat dari luar fungsi internal:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // mengubah variabel num
  }
  
  func(num); // meneruskan parameter
}

test(1); // meneruskan angka sebagai parameter
Задание 1

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

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

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

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

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

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

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

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

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

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

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

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

test(1);