7

私はJavascriptプロトタイプについて学び、次のjavascriptを使用してFiddle(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);};

興味深いことに、<code> console.debug(dog .__ proto__); makeSoundそれがAnimalクラスのプロトタイプのメソッドであることを明らかにします。

ただし、後の行でそのメソッドをプロトタイプに追加します。makeSoundコードで制御フローがまだプロトタイプに到達していない場合、コンソールがプロトタイプにメソッドがあることに気付くのはなぜですか?

4

1 に答える 1

6

コンソールは「ライブ」です。最初にログに記録した場合でも、後の変更が反映されます。

私の知る限り、オブジェクト、関数、配列ではこのように動作します。ただし、文字列、ブール値、および数値をログに記録すると、ログに記録されたときの意味が出力されます。

于 2012-04-21T23:23:14.970 に答える