Parametre for ydre og indre funktioner i JavaScript
Lad os gøre det således, at både den ydre funktion og den indre tager imod parametre:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Lad os sende parameteren fra den ydre funktion til kaldet af den indre funktion:
function test(num) {
function func(localNum) {
console.log(localNum); // vil udskrive 1
}
func(num); //!! sender parameteren
}
test(1); // sender et tal som parameter
Det betyder, at i den indre funktion vil
variablen num være tilgængelig som en ekstern
variabel fra forælderfunktionen, og variablen
localNum, som er en lokal variabel i den
indre funktion.
Begge disse variabler vil have de samme værdier:
function test(num) {
function func(localNum) {
console.log(num); // vil udskrive 1
console.log(localNum); // vil udskrive 1
}
func(num);
}
test(1);
Forskellen mellem dem vil være følgende: hvis
man ændrer variablen num i den indre funktion,
vil den også ændres i den ydre funktion:
function test(num) {
function func(localNum) {
num = 2; // ændrer variablen num
}
func(num); // sender parameteren
console.log(num); // vil udskrive 2
}
test(1); // sender et tal som parameter
Mens variablen localNum vil være lokal.
Ændringer af den vil ikke føre til nogen
ændringer i den ydre funktion. Og selve
variablen localNum vil ikke være synlig
udenfor den indre funktion:
function test(num) {
function func(localNum) {
localNum = 2; // ændrer variablen num
}
func(num); // sender parameteren
}
test(1); // sender et tal som parameter
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Bestem, uden at køre koden, hvad der vil blive udskrevet i konsollen:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);