Eine Funktion erweitern - zwei Funktionen zusammenführen?

8

Ich bin jetzt in einem neuen Gebiet, ich habe seit einiger Zeit nicht mehr mit so etwas gearbeitet.

Was ist der beste Weg, um zum Beispiel eine Javascript-Klasse zu haben?

%Vor%

Ich möchte dies in der Klasse festlegen, und wenn ein Benutzer eine Klasse erweitert, möchte ich, dass sie diese Funktion effektiv erweitert. Ich weiß, dass ich nicht klar bin, aber es war ein langer Tag. Dies ist beispielsweise der Code des Benutzers.

%Vor%

Das Zusammenführen sollte zu folgendem Ergebnis führen:

%Vor%

Nehme ich die falschen Sachen oder die falsche Frage?

    
Antony Carthy 02.09.2011, 17:15
quelle

4 Antworten

8

Sie können Funktionen nicht "zusammenführen", wie Sie sie dort beschreiben, aber Sie können eine Funktion so definieren, dass sie sowohl sich selbst als auch eine neue Funktion (vor oder nach dem Original) aufruft.

%Vor%

Das Einfügen von (this, arguments) ist nicht erforderlich, wenn Sie den Ausführungskontext nicht interessieren oder wenn die aufgerufene Funktion parameterlos ist. Aber ich habe aus Gründen der Klarheit hinzugefügt, was man tun könnte, wenn man eine parametrisierte Methode wollte.

    
Matt 02.09.2011 17:22
quelle
8

Sie markieren die Frage mit jquery, also nehme ich an, dass Sie jquery verwenden. Mit jquery können Sie Objekte mit jQuery.extend () zusammenführen.

%Vor%

oder verwenden Sie die Prototypkette, um die Vererbung zu implementieren. zum Beispiel:

%Vor%     
ntangjee 02.09.2011 17:37
quelle
0

Wenn ich Sie richtig verstehe, können Sie versuchen, die ursprüngliche Funktion umzubenennen und sie in der neuen Funktion aufzurufen:

%Vor%

Funktioniert auch mit Vererbung von Klassen / Methoden:

%Vor%     
keithhackbarth 11.09.2013 18:06
quelle
0
%Vor%     
Jackstine 14.03.2018 18:08
quelle

Tags und Links