In Javascript können die übergebenen Parameter innerhalb der Funktion wie folgt geändert werden
Kopieren Sie den Codecode wie folgt:
Funktion func1(name) {
name = 'Lilie';
alarm(name);
}
func1('jack');//Lily ausgeben
Schauen wir uns ein anderes Beispiel an
Kopieren Sie den Codecode wie folgt:
Funktion fun1(n) {
this.name = n;
}
Funktion fun2(name) {
fun1.call(this,'lily');
alarm(name);
}
fun2("jack");//Ausgabe "jack"
Die Funktion fun1 wollte den Parameter beim Aufruf von fun2 in „lily“ ändern, scheiterte jedoch. Was auftaucht, ist immer noch „Jack“. Überlegen Sie, warum?
Tatsächlich hat fun1 immer noch die Möglichkeit, die Parameter beim Aufruf von fun2 mithilfe des Caller-Attributs zu ändern
Kopieren Sie den Codecode wie folgt:
Funktion fun1() {
arguments.callee.caller.arguments[0] = 'lily';
}
Funktion fun2(name) {
fun1.call(this,name);
Warnung(Name);
}
fun2("jack");//Ausgabe "lily"
Es ist ersichtlich, dass der Aufrufstapel der inneren Funktion für die äußere Funktion sichtbar ist und geändert werden kann.