2013-08-08 15 views
5

私はすべての子クラスに対して同じロジックを持ちますが、それらに固有のいくつかの変数を使用する基本クラスメソッドを実装しようとしています。親クラスから子クラスプロトタイプへのアクセス

function A() {} 
A.prototype.foo = 'bar'; 
A.prototype.getFoo = function() { 
    console.log('Called class: ' + this.constructor.name); 
    return this.foo; 
}; 

function B() {} 
B.prototype.foo = 'qaz'; 
require('util').inherits(B, A); 

console.log(B.prototype.getFoo()); 

最後の行は、barを印刷したが、からgetfooは()もCalled class: Bを印刷します。だから私は子供のコンストラクタにアクセスできるので、子供のプロトタイプにアクセスする方法があるのだろうかと疑問に思っていますか?

+0

プロトタイプに関数を置くだけです – Esailija

答えて

5

require('util').inheritsAを継承する新しいオブジェクトにB.prototypeをリセットします。
古いプロトタイプで設定したプロパティはすべて失われます。

B.prototype.fooの後に設定した場合は、inherits()が正常に動作します。

+0

入手しました。ありがとう! – klkvsk