Es ergibt sich aus dem Nachdenken über eine schriftliche Testfrage. Normalerweise wird niemand den Parameterwert innerhalb der Funktion ändern. Es wird hier nur besprochen. Es gibt drei Möglichkeiten, es zu ändern.
1. Ändern Sie die formalen Parameter direkt, wenn Sie die Funktion deklarieren
Kopieren Sie den Codecode wie folgt:
Funktion f1(a) {
Warnung(a);
a = 1;//Formalparameter a ändern
alarm(1 === a);
Alert(1 === Argumente[0]);
}
f1(10);
Die Funktion f1 definiert den Parameter a. Beim Aufruf wird der Parameter 10 übergeben, 10 wird zuerst angezeigt, a wird in 1 geändert, true wird zweimal angezeigt und a und arguments[0] sind beide 1.
2. Ändern Sie über das Argumentobjekt innerhalb der Funktion
Kopieren Sie den Codecode wie folgt:
Funktion f2(a) {
Warnung(a);
arguments[0] = 1; //Argumente ändern
alarm(1 === a);
Alert(1 === Argumente[0]);
}
Der Effekt ist der gleiche wie bei Funktion f1.
3. Die innerhalb der Funktion deklarierten lokalen Variablen haben denselben Namen wie die formalen Parameter.
Kopieren Sie den Codecode wie folgt:
Funktion f3(a) {
Warnung(a);
var a = 1;//Lokale Variable a deklarieren und ihr den Wert 1 zuweisen
alarm(1 === a);
alarm(argumente[0]);
}
f3(10);
Die Funktion f3 definiert den formalen Parameter a, und die lokale Variable a wird innerhalb der Funktion deklariert und ihr wird der Wert 1 zugewiesen, aber a ist hier immer noch Parameter a, was durch die Tatsache bewiesen werden kann, dass am Ende die Argumente[0] angezeigt werden wird auf 1 geändert.
4. Wenn Sie lediglich die lokale Variable a deklarieren, ohne einen Wert zuzuweisen, ist die Situation anders.
Kopieren Sie den Codecode wie folgt:
Funktion f3(a) {
var a;//Nur Deklaration, keine Zuweisung
Warnung(a);
alarm(argumente[0]);
}
f3(10);
Zu diesem Zeitpunkt gibt es insgesamt 10 Popups, die nicht undefiniert sind.