In C#, abbiamo un concetto sul metodo astratto e su come applicarlo in Javascript. Esempio, ho un esempio:Come applicare la funzione virtuale in javascript
function BaseClass() {
this.hello = function() {
this.talk();
}
this.talk = function() {
alert("I'm BaseClass");
}
};
function MyClass() {
this.talk = function() {
alert("I'm MyClass");
}
BaseClass.call(this);
};
MyClass.prototype = new BaseClass();
var a = new MyClass();
a.hello();
Come la funzione ciao() in BaseClass chiamare la funzione do() dal MyClass quando l'oggetto è un'istanza di MyClass. Il risultato dell'avviso deve essere "I'm MyClass". Mi aiuti per favore. Grazie.
Penso che intendessimo 'virtuale' /' override', non 'abstract'. – HackedByChinese
Sì, la funzione della base deve essere una funzione virtuale in modo che la classe inherit possa sovrascriverla. –
Non sono sicuro di aver capito. Basta rimuovere 'BaseClass.call (this);' line e funziona, poiché 'this.talk = ...' sovrascrive il metodo base. Oppure puoi avviare 'MyClass' con' BaseClass.call (...) '(all'inizio, non alla fine). Ma se si utilizza 'call', non è necessario definire un prototipo. – freakish