私はJavascriptのプロトタイプについて学習し、このJavaScriptでフィドル(http://jsfiddle.net/3MuZa/1/)を作っています:なぜ私は前に私のプロトタイプを変更したことに気付いていますか?
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);};
興味深いことに、console.debug(dog.__proto__);
はmakeSound
は、Animalクラスのプロトタイプの方法であることが明らかになりました。
しかし、そのメソッドを後の行のプロトタイプに追加します。コントロールフローが自分のコードでまだ得られなかった場合、プロトタイプにmakeSound
メソッドがあることをコンソールに通知する理由は何ですか?
最後の行にブレークポイントを設定します。そのブレークポイントまで実行します。コンソールを調べます。 'makeSound'が存在しないことがわかります。 –
ありがとうございます!実際に、ブレークポイントを設定してローカル変数を調べると、 'makeSound'メソッドが存在しないことがわかります。 –