4
prototype.jsクラスを拡張して、いくつかの新しい関数を追加し、そこに既にある関数のいくつかをオーバーライドします。完全に分離された.jsファイルでprototype.jsクラスをオーバーライド/拡張するには
以下の例では、initAutocompleteNewを追加し、initAutocompleteを編集して「new」を警告します。
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");
},
}
誰かが示唆したが、うまくいかないと思うのは、jQueryだと思いますか?
$.extend(obj_name.prototype, {
newfoo : function() { alert('hi #3'); }
}
うん、私はprefectly働い1.7を使用しています、あなたのクラスにメソッドをオーバーライドしたり、追加したい場合は、あなたがClass.addMethodsを使用することができ、あなたが1.7を使用していると仮定すると、
ありがとうdontGoPlastic。 –
オーバーライドから親メソッドを呼び出す方法はありますか? –
@Tim $ superは機能しません(クラスの継承ポストに詳細があります)? – dontGoPlastic