Parametrar för yttre och inre funktioner i JavaScript
Låt oss se till att både den yttre funktionen och den inre tar parametrar:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Låt oss skicka parametern från den yttre funktionen till anropet av den inre funktionen:
function test(num) {
function func(localNum) {
console.log(localNum); // skriver ut 1
}
func(num); //!! skickar parametern
}
test(1); // skickar ett tal som parameter
Det blir så att variabeln num kommer att vara tillgänglig
i den inre funktionen som en yttre
variabel från föräldrafunktionen, och variabeln
localNum, som är en lokal variabel i
den inre funktionen.
Båda dessa variabler kommer att ha samma värden:
function test(num) {
function func(localNum) {
console.log(num); // skriver ut 1
console.log(localNum); // skriver ut 1
}
func(num);
}
test(1);
Skillnaden mellan dem blir följande: om
variabeln num ändras i den inre funktionen
- kommer den att ändras även i den yttre funktionen:
function test(num) {
function func(localNum) {
num = 2; // ändrar variabeln num
}
func(num); // skickar parametern
console.log(num); // skriver ut 2
}
test(1); // skickar ett tal som parameter
Medan variabeln localNum kommer att vara lokal.
Dess ändringar kommer inte att leda till några
ändringar i den yttre funktionen. Och själva
variabeln localNum kommer inte att vara synbar
utanför den inre funktionen:
function test(num) {
function func(localNum) {
localNum = 2; // ändrar variabeln num
}
func(num); // skickar parametern
}
test(1); // skickar ett tal som parameter
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);