Es gibt zwei besondere Eigenschaften in der Funktion: Argumente und diese. Argumente sind ein Array -Objekt der Klasse, das alle übergebenen Parameter enthält.
Dieses Objekt hat aber auch eine Eigenschaft namens Callee, die ein Zeiger auf eine Funktion ist, die das Argumenteobjekt besitzt.
Bitte beachten Sie das Beispiel für klassische faktorielle Funktionen:
Die Codekopie lautet wie folgt:
Funktionsfaktor (num) {
if (num <= 1) {
Rückkehr 1;
} anders {
return num * factorial (num - 1);
}
}
Funktionsfaktor (num) {
if (num <= 1) {
Rückkehr 1;
} anders {
return num * argumente.callee (num - 1);
}
}
Es ist nichts Falsches daran, die erste Methode anzuwenden, aber die Kupplung ist zu hoch und nicht sehr gut. Nachdem der Funktionsname geändert wurde, muss auch der interne Funktionsname geändert werden.
Die zweite Methode ist eine niedrige Kopplung, unabhängig davon, wie der Funktionsname geändert wird, wirkt sich nicht auf die Funktionsausführung aus.
Dies bezieht sich auf das Umgebungsobjekt, auf dem die Funktion ausgeführt wird, oder kann auch als dieser Wert bezeichnet werden.
Die Codekopie lautet wie folgt:
Fenster.Color = "rot";
var o = {Farbe: "blau"};
Funktion sageColor () {
alarm (this.color);
}
saycolor (); // rot
O.SayColor = SayColor;
O.Saycolor (); // Blue
Das Caller -Attribut enthält einen Verweis auf die Funktion, die die aktuelle Funktion aufruft. Wenn die aktuelle Funktion im globalen Bereich aufgerufen wird, ist ihr Wert null
Die Codekopie lautet wie folgt:
Funktion ober () {
innter ();
}
Funktion inner () {
//alert(innter.caller);//the Copping ist zu hoch
alert (argumente.callee.caller);
}
äußere();
Das obige ist der gesamte Inhalt der internen Eigenschaften von JavaScript -Funktionen. Ich hoffe du kannst es mögen