Ich mag assiciate eine Callback-Methode auf eine Javascript-Funktion, um nach ihrer AusführungWie man einen spezifischen Rückruf an einen vorhandenen JavaScript-Funktion
Vielen Dank im Voraus
Ich mag assiciate eine Callback-Methode auf eine Javascript-Funktion, um nach ihrer AusführungWie man einen spezifischen Rückruf an einen vorhandenen JavaScript-Funktion
Vielen Dank im Voraus
Wenn Sie vermeiden können nicht aufgerufen werden, befestigen dies zu tun (das ist in der Regel am besten), die übliche Art und Weise, es zu tun ist, um Wrap die Funktion in einer anderen Funktion:
function f(msg) {
console.log("The message is: " + msg);
}
f("Before being wrapped");
console.log("Now wrapping the function");
// Then wrapping it
var originalF = f;
f = function() {
var returnValue;
console.log("This is before the original function");
returnValue = originalF.apply(this, arguments);
console.log("This is after the original function");
return returnValue;
};
f("After being wrapped");
Beachten Sie die Verwendung von Function#apply
, um sicherzustellen, dass wir die ursprüngliche Funktion mit demselben this
Wert aufrufen, mit dem wir aufgerufen wurden, und mit allen ursprünglichen Argumenten. Dann behalten wir den Rückgabewert und geben ihn zurück, wenn wir fertig sind.
Natürlich, wenn die ursprüngliche Funktion eine asynchrone Aufgabe gestartet hat, haben wir nur die ursprüngliche Funktion, nicht den Code ausgelöst, wenn die Aufgabe abgeschlossen ist.
Sie müssen die Funktion neu definieren. Sie können dies mit einem IIFE tun.
funcname = (function(oldfunc, callback) {
return function() {
var value = oldfunc.apply(this, arguments);
callback();
return value;
})(funcname, callback);
);
fügen Sie bitte ein Beispiel hinzu. –
Mögliches Duplikat von [Wie man einen Callback zu einer Funktion in Javascript hinzufügt] (http://stackoverflow.com/questions/7691762/how-to-add-a-callback-to-a-function-in-javascript) – radoh