Wie kann ich einen Verweis auf eine Funktion mit Parametern übergeben? [Duplikat
Mögliches Duplizieren:
Wie kann ich Argumente im JavaScript-Funktionsaufruf voreinstellen? (Teilfunktionsanwendung)
Ich muss in der Lage zu Verweis auf eine Funktion mit einem bestimmten Parametersatz übergeben.
Hier ist ein Beispiel für die Übergabe einer Referenzohn parameters:
var f = function () {
//Some logic here...
};
var fr = f; //Here I am passing a reference to function 'f', without parameters
fr(); //the 'f' function is invoked, without parameters
Now, was ich tun muss, ist das gleiche @ übergebf
Funktion, aber dieses Mal müsste ich Parameter an die Referenz übergeben. Jetzt kann ich es mit einer anonymen Funktion machen und das @ aufruff
-Funktion mit Parametern in der neu erstellten Funktion, wie z. B .:
var f = function () {
//Some logic here...
};
var fr = function (pars) {
f(pars);
}; //Here I am creating an anonymous function, and invoking f inside it
fr({p : 'a parameter'}); //Invoking the fr function, that will later invoke the f function with parameters
Aber meine Frage ist, Gibt es eine Möglichkeit, einen direkten Verweis auf das @ zu übergebef
Funktion Mit Parametern zufr
, aber ohne es in eine anonyme Funktion einzuschließen?
Was muss ich @ zuweisfr
um es ohne Parameter aufrufbar zu machen fr()
), so dass f (1,2,3) ausgeführt wird, wennfr
wird aufgerufen?
[AKTUALISIEREN Ich folgteJason Bunting Antwort aufHie über dieTeilfunktion und die JavaScript-Funktion, die er dort veröffentlicht, ist genau das, wonach ich gesucht habe. Hier ist die Lösung:
function partial(func /*, 0..n args */) {
var args = Array.prototype.slice.call(arguments).splice(1);
return function() {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}