1

OK、次のようなコンストラクタがあるとしましょう:

var Base = function() {};
Base.prototype.shmoo = function() { this.foo="shmoo"; }

Baseそれから独立して、また互いに別々に拡張する他のコンストラクターを作成する方法は?

言い換えれば、派生コンストラクターの機能を拡張すると、そのオブジェクトのみに影響し、Base他の派生オブジェクトにも影響しません。

私はもう試した

Extender = function() {};
Extender.prototype = Base.prototype;
Extender.prototype.moo = function() { this.moo="boo"; };

もちろん、それはどこでも有効です。

クラス階層をシミュレートする必要がありますか? 私はそのパターンから離れようとします。

4

1 に答える 1

1

これにより、プロトタイプの継承が実装されます(これが必要です):

 // The Extender prototype is an instance of Base but not Base's prototype     
Extender.prototype = new Base();

// Set Extender() as the actual constructor of an Extender instance
Extender.prototype.constructor = Extender; 
于 2013-04-20T19:48:39.363 に答える