estoy tratando de crear una nueva clase que hereda Dog
través de la herencia de prototipo de la clase Animal
:¿Por qué no puedo heredar el prototipo de la clase Animal en mi código de JavaScript?
function Animal() {
this.name = "animal";
this.writeName = function() {
document.write(this.name);
}
}
function Dog() {
this.name = "dog";
this.prototype = new Animal();
}
new Dog().writeName()
Sin embargo, me sale un error de Javascript: Uncaught TypeError: Object #<Dog> has no method 'say'
.
¿Por qué? ¿No debería el objeto Dog
conservar un objeto Animal
como prototipo?
¿Seguro que pegó el código correcto? La palabra 'say' no aparece allí una vez. –
Porque no hay clases? ;) Pero el problema es que 'this' ya es el * objeto incorrecto * en ese momento (así como el [[prototipo]] siendo * demasiado tarde * para que' new' se utilice). –
BTW, use console.log en lugar de document.write y alerta. Hará tu vida mucho más fácil a largo plazo. – hugomg