Ich frage mich, ist es möglich, Funktion von Drittanbietern (wie Monkey-Patching [wiki], [nice article]) in einer Weise zu ändern einige Zeilen in der Mitte dieser Funktionen?Wie zu modifizieren (Affe-Patching) Drittanbieter-Funktion auf bestimmte Linie
Beispiel von dem, was ich will:
von Drittanbietern (Patchen Ziel):
var obj = {
sum: function (a) {
var b = 1;
//Here I want to add a line:
// b = 2
return a + b;
}
};
NB: Ich weiß, dass wir benutzerdefinierte Funktionen vor und nach ein Original-Funktionsaufruf ausführen können , aber ich möchte benutzerdefinierten Code in der Mitte des Körpers der ursprünglichen Funktion ausführen.
UPD: Ich werde meine Gedanken unten als Antwort teilen, aber es ist hässlich, also möchte ich andere Wege finden.
Sie können einfach die * Summe ersetzen * Funktion, wenn Sie wollen: 'obj.sum = function() {/ * Ihre Sachen * /};' . – RobG
@RobG Ja, danke, es ist viel einfacher, aber in einigen Fällen nicht anwendbar –