Ich sehe 2 Vorteile:
Partial Anwendung:
der BIND-Verfahren verwendet werden kann, um eine Funktion Argumente voreinzustellen; So können Sie eine Unterfunktion einer Funktion erstellen (nicht wortwörtlich, hinter den Kulissen, es gibt nur eine Funktion), indem Sie vor dem Aufruf ein Argument übergeben, so dass dieses Argument, für das Sie voreingestellt haben, verwendet wird alle Aufrufe der von bind zurückgegebenen Funktion. @Charlie_H hat dies bereits erklärt, aber ich werde ein Beispiel liefern, wie gut:
function foo(bar, baz) {
return bar + baz;
}
var sub_foo = foo.bind(Object.create(null), 20);
console.log(sub_foo(60));
console.log(sub_foo(120));
So wie Sie in dem obigen Beispiel sehen können, die bind
Methode erlaubt mir zu schaffen, was Sie eine Unterfunktion nennen könnte Aus foo
wird diese Funktion immer 20
für ihren ersten Parameter verwenden.
Jetzt wieder, lassen Sie sich nicht meine schlechte Formulierung irreführen, bind
schafft nicht wirklich eine neue Funktion! hinter den Kulissen wird die ursprüngliche Funktion verwendet, die einzige Sache ist bind
wird einige seiner Magie durchführen, so dass der Parameter bind
immer verwendet wird. Ich benutze das Wort "Unterfunktion", weil es das Ganze leichter verständlich macht.
Fähigkeit, die this
der Zielfunktion zu binden, was auch immer Objekt, das Sie wollen:
Mit Fett-Pfeil-Funktionen, die this
der Fett-Pfeil-Funktion wird immer auf die this
von gebunden werden der umschließende Umfang; mit binden, können Sie die Zielfunktion des this
auf ein beliebiges Objekt binden Sie wollen:
function foo() {
return this.baz;
}
var bar = foo.bind({baz: "Hell yeah!"});
bar(); // "Hell yeah!"
, Darüber hinaus ist die this
Bindung von Fett-Pfeil-Funktionen nicht außer Kraft gesetzt werden, so ist dies eine subtile Detail, aber immer noch nützlich.
Eine weitere Sache, die ich in dem Buch hinzufügen mögen Sie nicht JS wissen: diese & Objekt Prototypen, Kyle Simpson sagt, dass man nicht Fett-Pfeil-Funktionen umgehen this
Komplexität verwenden sollte, welche Art von verbiegt JavaScript this
Regeln, da ihre Verwendung Wurzeln auf das var self = this
Muster zurückgeht, und die Verwendung dieses Musters stammt von einem Mangel an Verständnis von JavaScript this
Verhalten. Kurze Version: Er bevorzugt bind
. Ich sehe nichts mit der Verwendung von Fett-Pfeil-Funktionen, IMO machen sie sogar Code lesbarer, nur indem man sie anschaut, können Sie sehen, was der Entwickler versucht, und wie sie das inzwischen mit bind
verwendet haben , Sie wissen nicht genau, was der Entwickler zu tun versucht und warum sie es tun, bis Sie das erste Argument von bind
betrachten. Ich empfehle Fett-Pfeil-Funktionen, wo Sie die this
der Fett-Pfeil-Funktion an die aktuellen Bereich this
und bind
gebunden werden, wenn Sie wollen, dass es an etwas anderes gebunden ist.
Wenn Sie Teile meiner Antwort nicht verstehen, fragen Sie mich, und ich werde versuchen, in den Kommentaren zu erarbeiten.
Nun, wenn Sie jemals an etwas anderes als 'this' binden wollen, dann müssen Sie' .bind' verwenden. Kommt nicht oft vor. –
Ich habe Fälle gesehen, in denen Sie Dinge * zusätzlich zu * 'this 'binden möchten. In diesem Fall funktioniert eine Pfeilfunktion immer noch und Sie übergeben diese als zusätzliche Argumente. Ich habe 'bind' noch nicht ohne' this' gesehen, aber es ist definitiv möglich, also denke ich, dass es gelegentlich gemacht wird (-: – hippietrail
Voting, um wieder zu öffnen. Keine der Antworten auf die andere Frage listet irgendwelche Anwendungsfälle auf Binde über Pfeilfunktionen überhaupt. Die Antworten hier sind einzigartig. – hippietrail