En C#, tenemos un concepto sobre el método abstracto y cómo aplicarlo en Javascript. Ejemplo, tengo un ejemplo:Cómo aplicar la función virtual en 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();
cómo la función hello() en BaseClass llamar a la función do() desde MyClass cuando el objeto es una instancia de MyClass. El resultado de alerta debe ser "I'm MyClass". Por favor, ayúdame. Gracias.
Creo que quiso decir 'virtual' /' anular', no 'abstracto'. – HackedByChinese
Sí, la función de la base debe ser una función virtual para que la clase heredada pueda anularla. –
No estoy seguro de entender. Simplemente elimine la línea 'BaseClass.call (this);' y funciona, ya que 'this.talk = ...' prevalece sobre el método base. O puede iniciar 'MyClass' con' BaseClass.call (...) '(al principio, no al final). Pero si usa 'call', entonces no hay necesidad de definir el prototipo. – freakish