JavaScript'te Dış ve İç Fonksiyon Parametreleri

Dış fonksiyonun ve iç fonksiyonun parametre aldığı bir yapı kuralım:

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

Dış fonksiyonun parametresini, iç fonksiyonun çağrısına aktaralım:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 yazacak
  }
  
  func(num); //!! parametreyi aktarıyoruz
}

test(1); // parametre olarak sayı veriyoruz

Böylece, iç fonksiyonda num değişkeni ebeveyn fonksiyondan gelen bir dış değişken olarak, localNum değişkeni ise iç fonksiyonun yerel değişkeni olarak erişilebilir olacaktır.

Bu iki değişkenin değerleri aynı olacaktır:

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

test(1);

Aralarındaki fark şudur: eğer iç fonksiyonda num değişkeni değiştirilirse, bu değişiklik dış fonksiyonda da görülecektir:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num değişkenini değiştiriyoruz
  }
  
  func(num);   // parametreyi aktarıyoruz
  console.log(num);  // 2 yazacak
}

test(1); // parametre olarak sayı veriyoruz

localNum değişkeni ise yerel olacaktır. Onun değiştirilmesi, dış fonksiyonda herhangi bir değişikliğe yol açmayacaktır. Üstelik localNum değişkeninin kendisi de iç fonksiyonun dışında görünmeyecektir:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num değişkenini değiştiriyoruz
  }
  
  func(num); // parametreyi aktarıyoruz
}

test(1); // parametre olarak sayı veriyoruz
Задание 1

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

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

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

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

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

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

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

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

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

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

Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:

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

test(1);