Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über Javascript-Funktionsattribute und Methoden_Javascript-Fähigkeiten

Eine kurze Diskussion über Javascript-Funktionsattribute und Methoden_Javascript-Fähigkeiten

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

Jede Funktion enthält zwei Eigenschaften: Länge und Prototyp
​​​​Länge: Die Anzahl der benannten Parameter, die die aktuelle Funktion akzeptieren möchte
​​​​Prototyp: Es ist der eigentliche Ort, an dem alle ihre Kraftmethoden gespeichert werden

Code kopieren Der Code lautet wie folgt:

Funktion sayName(name) {
alarm(name);
}
Funktion sum(num1, num2) {
                 return num1 num2;
}
Funktion sayHi() {
              warning("hi");
}
Alert(sayName.length);//1 Die Anzahl der Parameter ist eins
​​​​ alarm(sum.length);//2 Anzahl der Parameter: 2
alarm(sayHi.length);//0 Keine Parameter

Jede Funktion enthält zwei nicht vererbte Methoden: apply() und call()
​​​​ Diese beiden Methoden rufen Funktionen in einem bestimmten Bereich auf, was tatsächlich dem Festlegen des Werts dieses Objekts im Funktionskörper entspricht
​​​​ Erstens akzeptiert apply() zwei Parameter: einer ist der Bereich, in dem die Funktion ausgeführt wird, und der andere ist das Parameter-Array (das eine Array-Instanz oder ein Argumentobjekt sein kann)

Code kopieren Der Code lautet wie folgt:

Funktion sum(num1, num2) {
                 return num1 num2;
}
FunktionsaufrufSum1(num1, num2) {
                 return sum.apply(this, arguments);//Übergeben Sie das Arguments-Objekt
}
          function callSum2(num1, num2) {
              return sum.apply(this, [num1, num2]);
}
alarm(callSum1(10, 10));//20
alarm(callSum2(10, 20));//30

Zweitens hat sich der erste Parameter der Aufrufmethode nicht geändert. Die übrigen Parameter sind alle übergebene Parameter. Die an die Funktion übergebenen Parameter müssen einzeln aufgelistet werden

Code kopieren Der Code lautet wie folgt:
Funktion sum(num1, num2) {
                 return num1 num2;
}
         FunktionsaufrufSum(num1, num2) {
               return sum.call(this, num1, num2);
}
alarm(callSum(10, 200));

Welche Methode bequemer anzuwenden ist, hängt ganz von Ihren Wünschen ab. Wenn keine Parameter vorhanden sind, ist es unabhängig davon, welcher verwendet wird, derselbe.

                      Allerdings dienen die Apply- und Call-Methoden definitiv nicht nur dazu, wie man die Rumpfparameter erhält.
Ihr eigentlicher Einsatz von Kampfkünsten besteht darin, die Funktion der Funktion zu erweitern.

Code kopieren Der Code lautet wie folgt:

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

Der größte Vorteil der Verwendung von apply und call zum Erweitern des Bereichs besteht darin, dass keine Kopplungsbeziehung mit der Methode erforderlich ist.

ECMAScript5 definiert auch eine Methode: bind(). Diese Methode erstellt eine Instanz der Funktion, deren Wert an den an die Bindefunktion

übergebenen Wert gebunden wird

Code kopieren Der Code lautet wie folgt:

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

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird euch gefallen.

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