Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über die internen Eigenschaften von JavaScript-Funktionen_Grundkenntnisse

Eine kurze Diskussion über die internen Eigenschaften von JavaScript-Funktionen_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:18:45897Durchsuche

Es gibt zwei spezielle Attribute innerhalb der Funktion: arguments und this. arguments ist ein Array-ähnliches Objekt, das alle übergebenen Parameter enthält,
Aber dieses Objekt hat auch ein Attribut namens callee, das ein Zeiger auf die Funktion ist, die das Argumentobjekt besitzt.

Bitte schauen Sie sich das Beispiel einer klassischen Fakultätsfunktion an:

Code kopieren Der Code lautet wie folgt:

Funktion Factorial(num) {
If (num <= 1) {
Rückgabe 1;
              } sonst {
Rückgabe num * Factorial(num - 1);
            }
}
Funktion Factorial(num) {
If (num <= 1) {
Rückgabe 1;
              } sonst {
Gibt num * arguments.callee(num - 1);
zurück             }
}

An der ersten Methode ist nichts auszusetzen, aber die Kopplung ist zu hoch, was nicht gut ist. Nachdem der Funktionsname geändert wurde, muss sich auch der interne Funktionsname ändern
Die zweite Methode ist die geringe Kopplung. Unabhängig davon, wie sich der Funktionsname ändert, hat dies keinen Einfluss auf die Funktionsausführung.

Dies bezieht sich auf das Umgebungsobjekt, in dem die Funktionsdaten ausgeführt werden, oder es kann auch als dieser Wert bezeichnet werden

Code kopieren Der Code lautet wie folgt:

          window.color = "red";
      var o = {color: "blue"};
Funktion sayColor() {
alarm(this.color);
}
         sayColor();//red
o.sayColor = sayColor;
o.sayColor();//blue

Das Aufruferattribut enthält die Referenz der Funktion, die die aktuelle Funktion aufruft. Wenn die aktuelle Funktion im globalen Bereich aufgerufen wird, ist ihr Wert Null

Code kopieren Der Code lautet wie folgt:

Funktion äußere() {
innter();
}
         function innter(){
                   //alert(innter.caller);//Die Kopplung ist zu hoch
alarm(arguments.callee.caller);
}
        äußere();

Das Obige ist der gesamte Inhalt der internen Eigenschaften von Javascript-Funktionen. Ich hoffe, es gefällt euch

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn