JavaScriptda Tashqi va Ichki Funktsiyalar Parametrlari

Keling, tashqi funksiya ham, ichki funksiya ham parametr qabul qilishi uchun qilaylik:

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

Tashqi funksiya parametrini ichki funksiya chaqiruviga o'tkazamiz:

javascriptfunction test(num) {
  function func(localNum) {
    console.log(localNum); // 1 ni chiqaradi
  }
  
  func(num); //!! parametrni o'tkazamiz
}

test(1); // parametr sifatida son o'tkazamiz

Shunday qilib, ichki funksiyada num o'zgaruvchisi tashqi o'zgaruvchi sifatida ota funksiyadan va localNum o'zgaruvchisi ichki funksiyaning mahalliy o'zgaruvchisi sifatida mavjud bo'ladi.

Bu ikkala o'zgaruvchi ham bir xil qiymatga ega bo'ladi:

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

test(1);

Ularning orasidagi farq quyidagicha: agar ichki funksiyada num o'zgaruvchisini o'zgartirsak - u tashqi funksiyada ham o'zgaradi:

javascriptfunction test(num) {
  function func(localNum) {
    num = 2; // num o'zgaruvchisini o'zgartiramiz
  }
  
  func(num);   // parametrni o'tkazamiz
  console.log(num);  // 2 ni chiqaradi
}

test(1); // parametr sifatida son o'tkazamiz

localNum o'zgaruvchisi esa mahalliy bo'ladi. Uning o'zgarishi tashqi funksiyada hech qanday o'zgarishga olib kelmaydi. Va localNum o'zgaruvchining o'zi ham ichki funksiyadan tashqarida ko'rinmaydi:

javascriptfunction test(num) {
  function func(localNum) {
    localNum = 2; // num o'zgaruvchisini o'zgartiramiz
  }
  
  func(num); // parametrni o'tkazamiz
}

test(1); // parametr sifatida son o'tkazamiz
Задание 1

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

test(1);