⊗jsPmFNOIP 250 of 505 menu

JavaScriptda Tashqi va Ichki Funktsiyalar Parametrlari

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

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

Tashqi funksiya parametrini ichki funksiya chaqiruviga o'tkazamiz:

function 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:

function 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:

function 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:

function test(num) { function func(localNum) { localNum = 2; // num o'zgaruvchisini o'zgartiramiz } func(num); // parametrni o'tkazamiz } test(1); // parametr sifatida son o'tkazamiz

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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

Kodni ishlamasdan, konsolda nima chiqishini aniqlang:

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