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);