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
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Kodni ishlamasdan, konsolda nima chiqishini aniqlang:
javascriptfunction test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);