JavaScript-те сыртқы және ішкі функциялардың параметрлері
Сыртқы функция да, ішкі функция да параметр қабылдайтындай етейік:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Сыртқы функцияның параметрін ішкі функцияны шақыруға берейік:
function test(num) {
function func(localNum) {
console.log(localNum); // 1 шығарады
}
func(num); //!! параметрді береміз
}
test(1); // санды параметр ретінде береміз
Яғни, ішкі функцияда num айнымалысы ата-ана функциясынан сыртқы айнымалы ретінде және localNum айнымалысы
ішкі функцияның жергілікті айнымалысы ретінде қолжетімді болады.
Бұл айнымалылардың екеуі де бірдей мәнге ие болады:
function test(num) {
function func(localNum) {
console.log(num); // 1 шығарады
console.log(localNum); // 1 шығарады
}
func(num);
}
test(1);
Олардың айырмашылығы мынада: егер
ішкі функцияда num айнымалысын өзгертсек - ол сыртқы функцияда да өзгереді:
function test(num) {
function func(localNum) {
num = 2; // num айнымалысын өзгертеміз
}
func(num); // параметрді береміз
console.log(num); // 2 шығарады
}
test(1); // санды параметр ретінде береміз
Ал localNum айнымалысы жергілікті болады.
Оның өзгерістері сыртқы функцияда ешқандай
өзгерістерге әкелмейді. Тіпті localNum айнымалысының өзі
ішкі функциядан тыс көрінбейді:
function test(num) {
function func(localNum) {
localNum = 2; // num айнымалысын өзгертеміз
}
func(num); // параметрді береміз
}
test(1); // санды параметр ретінде береміз
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Кодты істемей-ақ, консольге не шығарылатынын анықтаңыз:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);