uczę się o prototypów JavaScript i popełnił Fiddle (http://jsfiddle.net/3MuZa/1/) z tym javascript:Dlaczego konsola zauważa, że zmieniłem prototyp, zanim to zrobię?
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);};
ciekawe, console.debug(dog.__proto__);
ujawnia, że makeSound
to metoda prototypu klasy Zwierząt.
Dodaje jednak tę metodę do prototypu w późniejszej linii. Dlaczego konsola zauważa, że prototyp ma metodę makeSound
, jeśli w moim kodzie nie uzyskano jeszcze przepływu kontrolnego?
Umożliwia ustawienie punktu przerwania w tym ostatnim wierszu. Wykonaj do tego punktu przełomowego. Sprawdź konsolę. Zobaczysz, że 'makeSound' nie jest obecny. –
Dziękujemy! Rzeczywiście, ustawienie punktu przerwania i zbadanie zmiennych lokalnych ujawnia, że metoda 'makeSound' nie istnieje. –