为什么控制台注意到我之前改变了我的原型?

时间:2012-04-21 23:21:39

标签: javascript

我正在学习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方法?

1 个答案:

答案 0 :(得分:6)

控制台是“现场”。即使你先记录它,它也会反映出后来的变化。

据我所知,它在对象,函数,数组上的行为与此类似。但是如果你记录字符串,布尔值和数字,它们会记录它们记录时的含义。