Parameter äußerer und innerer Funktionen in JavaScript
Lassen Sie uns dafür sorgen, dass sowohl die äußere Funktion als auch die innere Parameter akzeptieren:
function test(num) {
function func(localNum) {
console.log(localNum);
}
}
Geben wir den Parameter der äußeren Funktion an den Aufruf der inneren Funktion weiter:
function test(num) {
function func(localNum) {
console.log(localNum); // gibt 1 aus
}
func(num); //!! Parameter übergeben
}
test(1); // Zahl als Parameter übergeben
Es stellt sich heraus, dass in der inneren Funktion
die Variable num als äußere
Variable aus der Elternfunktion und die Variable
localNum, die eine lokale Variable der
inneren Funktion ist, verfügbar sein werden.
Beide diese Variablen werden die gleichen Werte haben:
function test(num) {
function func(localNum) {
console.log(num); // gibt 1 aus
console.log(localNum); // gibt 1 aus
}
func(num);
}
test(1);
Der Unterschied zwischen ihnen wird folgender sein: wenn
in der inneren Funktion die Variable
num geändert wird - ändert sie sich auch in der äußeren Funktion:
function test(num) {
function func(localNum) {
num = 2; // Variable num ändern
}
func(num); // Parameter übergeben
console.log(num); // gibt 2 aus
}
test(1); // Zahl als Parameter übergeben
Die Variable localNum hingegen wird lokal sein.
Ihre Änderungen werden zu keinen
Änderungen in der äußeren Funktion führen. Und die
Variable localNum selbst wird
außerhalb der inneren Funktion nicht sichtbar sein:
function test(num) {
function func(localNum) {
localNum = 2; // Variable num ändern
}
func(num); // Parameter übergeben
}
test(1); // Zahl als Parameter übergeben
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num);
}
test(1);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
console.log(localNum);
}
func(num + 1);
}
test(1);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
console.log(num);
}
func(num + 1);
}
test(1);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(num);
}
test(1);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
localNum = 2;
}
func(num);
console.log(localNum);
}
test(1);
Bestimmen Sie, ohne den Code auszuführen, was in der Konsole ausgegeben wird:
function test(num) {
function func(localNum) {
num = 2;
}
func(num);
console.log(num);
}
test(1);