2013-08-08 16 views
5

Sto cercando di implementare un metodo di classe base, che abbia la stessa logica per tutte le classi figlie, ma userebbe alcune delle loro variabili, che sono specifiche per esse.Accesso al prototipo di classe figlio dalla classe genitore

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()); 

L'ultima riga stamperà bar, ma getFoo() stampa anche Called class: B. Quindi mi chiedo, dato che posso accedere al costruttore del bambino, c'è un modo per accedere al prototipo del bambino attraverso di esso?

+0

Inserire solo le funzioni sul prototipo – Esailija

risposta

5

require('util').inherits reimposta B.prototype in un nuovo oggetto che eredita A.
Tutte le proprietà impostate sul vecchio prototipo vengono perse.

Se si imposta B.prototype.foodopo chiamare inherits(), funzionerà bene.

+0

Ottenuto. Grazie! – klkvsk

Problemi correlati