私はJavascriptで熟練していません。私はいくつかのJSコードのためにクラスを定義する関数を使って(hereのように)操作ページを開発しました。このクラスは非常に複雑で、オブジェクトの位置を計算するのに役立ちます。これは現在テストされ運用されています。Javascriptの実装dilemna:メソッドオーバーライドのソリューションを持つクラスを探しています
私は新しいページを作成しています。私はこのクラスを再利用したいと思います。しかし、このクラスの少なくとも1つのメソッドは、各ページの(Javaのように)オーバーライドする必要があります。私は別のSOの質問では、Javascriptでメソッドをオーバーライドすることはできませんを読んでいる。
私はクラスプロトタイプを変更することを考えていましたが、そうすると、すべてのクラスインスタンスが変更されます。
各ページのクラスコードを複製することを非常に嫌っています。この問題にうってつけの優雅な解決策がありますか?ありがとう。
ソリューション
ので、考慮に解決サイムVIDAS'アダムRackisの上部にコメントを取る:
function Base(){}
Base.prototype.foo = function() { alert("base"); };
function Derived() {}
Derived.prototype = Object.create(Base.prototype);
Derived.prototype.foo = function() { alert("overridden"); };
var b = new Base();
var d = new Derived();
b.foo();
d.foo();
あなたは、両方のアルゴリズムは、引数に基づいて、そのメソッドの内部に存在し、そして持って使用すべきアルゴリズムを決めることができました... –
@ŠimeVidasは彼がどこで話しているかを知っています。彼の提案を取ることは良い考えです。 Object、createは古いブラウザではサポートされていないので、[ここ](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Object/create)からshimを取得する必要があります。あなたは古いIE –