Ārējo un iekšējo funkciju parametri JavaScript
Darīsim tā, lai gan ārējā funkcija gan iekšējā pieņemtu parametrus:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Padodam ārējās funkcijas parametru iekšējās funkcijas izsaukumā:
function test(num) {
function func(localNum) {
console.log(localNum); // izvadīs 1
}
func(num); //!! padodam parametru
}
test(1); // padodam parametru skaitli
Izrādās, ka iekšējā funkcijā būs
pieejams mainīgais num kā ārējais
mainīgais no vecāka funkcijas un mainīgais
localNum, kas ir iekšējās funkcijas
lokālais mainīgais.
Abiem šiem mainīgajiem būs vienādas vērtības:
function test(num) {
function func(localNum) {
console.log(num); // izvadīs 1
console.log(localNum); // izvadīs 1
}
func(num);
}
test(1);
Atšķirība starp tiem būs sekojoša: ja
iekšējā funkcijā mainīsiet mainīgo
num - tas mainīsies arī ārējā funkcijā:
function test(num) {
function func(localNum) {
num = 2; // mainām mainīgo num
}
func(num); // padodam parametru
console.log(num); // izvadīs 2
}
test(1); // padodam parametru skaitli
Bet mainīgais localNum būs lokāls.
Tā izmaiņas neizraisīs nekādas
izmaiņas ārējā funkcijā. Un pats
mainīgais localNum nebūs redzams
ārpus iekšējās funkcijas:
function test(num) {
function func(localNum) {
localNum = 2; // mainām mainīgo num
}
func(num); // padodam parametru
}
test(1); // padodam parametru skaitli
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Nosakiet, nepalaist kodu, ko izvadīs konsole:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);