estoy aprendiendo sobre prototipos de Javascript e hizo un violín (http://jsfiddle.net/3MuZa/1/) con este javascript:¿Por qué la consola señala que he cambiado mi prototipo antes que yo?
function Animal(name, sound) {
this.name = name;
this.sound = sound;
}
var dog = new Animal("Dog", "Bark");
console.debug(dog.__proto__);
Animal.prototype.makeSound = function() {console.log(this.sound);};
Curiosamente, console.debug(dog.__proto__);
revela que makeSound
es un método del prototipo de la clase de animal.
Sin embargo, agrego ese método al prototipo en una línea posterior. ¿Por qué la consola señala que el prototipo tiene un método makeSound
si el flujo de control aún no se había incorporado a mi código?
Establezca un punto de interrupción en esa última línea. Ejecutar a ese punto de ruptura. Inspecciona la consola. Verás que 'makeSound' no está presente. –
¡Gracias! De hecho, establecer un punto de interrupción y examinar las variables locales revela que el método 'makeSound' no existe. –