TL;DR:
In einfachen Worten: bind erstellt die Funktion, call und apply führen die Funktion aus, wobei apply die Parameter in einem Array erwartet
Vollständige Erläuterung
Angenommen, wir haben multiplication
función
function multiplication(a,b){
console.log(a*b);
}
Erstellen wir einige Standardfunktionen mit bind
var multiby2 = multiplication.bind(this,2);
Jetzt ist multiby2(b) gleich der Multiplikation(2,b);
multiby2(3); //6
multiby2(4); //8
Was passiert, wenn ich beide Parameter in bind
var getSixAlways = multiplication.bind(this,3,2);
Jetzt ist getSixAlways() gleich der Multiplikation(3,2);
getSixAlways();//6
selbst die Übergabe des Parameters ergibt 6; getSixAlways(12); //6
var magicMultiplication = multiplication.bind(this);
Dies erstellt eine neue Multiplikationsfunktion und weist sie magicMultiplication zu.
Oh nein, wir verstecken die Multiplikationsfunktionalität in magicMultiplication.
aufrufen magicMultiplication
gibt ein leeres function b()
bei der Ausführung funktioniert es einwandfrei magicMultiplication(6,5); //30
Wie wäre es mit anrufen und sich bewerben?
magicMultiplication.call(this,3,2); //6
magicMultiplication.apply(this,[5,2]); //10