Wie kann ich überschreiben / erweitern prototype.js Klasse in einer vollständig getrennt .js-Datei
Habe ich eine prototype.js Klasse, die ich erweitern möchte, um für beide fügen Sie einige neue Funktionen und setzen Sie ein paar der Funktionen schon da.
im Beispiel unten möchte ich hinzufügen initAutocompleteNew und Bearbeiten initAutocomplete warnen, die "neuen".
Varien.searchForm = Class.create();
Varien.searchForm.prototype = {
initialize : function(form, field, emptyText){
this.form = $(form);
this.field = $(field);
this.emptyText = emptyText;
Event.observe(this.form, 'submit', this.submit.bind(this));
Event.observe(this.field, 'focus', this.focus.bind(this));
Event.observe(this.field, 'blur', this.blur.bind(this));
this.blur();
},
//////more was here
initAutocomplete : function(url, destinationElement){
alert("old");
},
}
jemand vorgeschlagen, aber das funktioniert nicht, ich denke, es ist jQuery?
$.extend(obj_name.prototype, {
newfoo : function() { alert('hi #3'); }
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Artikel sollte helfen: http://prototypejs.org/learn/class-inheritance
Wie es aussieht, bist du der Definition der Klassen der "alten", wie beschrieben, im ersten Beispiel auf dieser Seite. Sind Sie mit 1.7?
Vorausgesetzt, Sie sind mit 1.7, wenn Sie wollte, zu überschreiben oder hinzufügen von Methoden zu Ihrer Klasse, die Sie verwenden können,Klasse.addMethods:
Hier ist ein Turnschuh: http://jsfiddle.net/gqWDC/
$super
funktioniert nur mitClass.create
und nichtaddMethods
.