JavaScript Redundanten Code vermeiden (durch Überschreiben von Methoden ?)

darton

Lt. Junior Grade
Registriert
Okt. 2004
Beiträge
282
Hallo!
Ich habe folgendes Problem. Ich habe etwa drei Javascript-Dateien (Tendenz steigend) auf unterschiedlichen Seiten, die alle folgende Funktion anbieten:
Code:
function do_edit(editable_elem, edit_button, edit_key, ul_list) {	
	_edit_button = edit_button;
	_ul_list = ul_list;
	_editable_elem = editable_elem;
	if (edit_button.text() != 'OK') {       
            edit_button.css('display','inline');
            edit_button.text('OK');
        } else {         	
            $("#form_stammdaten").submit();                
        }       
}
In einer einzigen Datei ist die Funktion noch etwas abgeändert:
Code:
function do_edit(editable_elem, edit_button, edit_key, ul_list) {	
	_edit_button = edit_button;
	_ul_list = ul_list;
	_editable_elem = editable_elem;
	if (edit_button.text() != 'OK') { 
            if (edit_key == 'geschlecht') {
                ...   
            } else {
                ...
            }   
            edit_button.css('display','inline');
            edit_button.text('OK');
        } else {         	
            $("#form_stammdaten").submit();                
        }       
}
Das heißt, sie unterscheidet sich nur in dieser einen If-Abfrage. Bisher habe ich das so gelöst, dass alle drei Javascript-Dateien diese Funktion enthalten. Ich möchte aber gerne redundanten Code vermeiden. Leider kenne ich mich mit Javascript nicht soo gut aus.
Könnte man vielleicht in einer Art "Oberklasse" ein Objektliteral einführen und diesem Objektliteral die Funktion do_edit zuordnen und in den jeweiligen "Unterklassen" diese Funktion ggfs. überschreiben? Wäre das eine gute Idee? Wenn ja, müsste ich dann die komplette Funktion überschreiben, obwohl ich nur diese eine if-Abfrage hinzufügen möchte?
 
Kann Javascript keine Funktionen höherer Ordnung? Damit könnte man soetwas sehr gut lösen und einer
Funktion direkt deutlich breitere Anwendungsmöglichkeiten geben (wenn man es denn richtig macht).
 
Schau/hoere/lies dir die Videos und Artikel von Douglas Crockford an/durch. Ausserdem fehlt in deinem Code ueberall "var".
 
Zurück
Oben