JavaScript'te Dış ve İç Fonksiyon Parametreleri
Dış fonksiyonun ve iç fonksiyonun parametre aldığı bir yapı kuralım:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Dış fonksiyonun parametresini, iç fonksiyonun çağrısına aktaralım:
function 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:
function 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:
function 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:
function 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
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Kodu çalıştırmadan, konsola ne yazılacağını belirleyin:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);