有人像我缺乏基本的大脑功能一样向我解释为什么fluffy.age
输出3
而muffin.age
输出4
的原因吗?是否仅因为fluffy
是在年龄变更之前定义的?
我对编码非常陌生,但是已经对其他所有JavaScript都有了不错的了解;但是,原型的想法对我来说仍然毫无意义。
function Cat(name, color, meow) {
this.name = name;
this.color = color;
}
Cat.prototype.age = 3;
var fluffy = new Cat("Fluffy", "White");
console.log(fluffy.age);
Cat.prototype = {
age: 4
};
console.log(fluffy.age);
var muffin = new Cat("Muffin", "Brown");
console.log(muffin.age);
答案 0 :(得分:0)
从中创建实例后,您正在更新原型。因此,该实例不包含更新的原型属性。
答案 1 :(得分:0)
function Cat(name, color, meow) {
this.name = name;
this.color = color;
}
Cat.prototype.age = 3;
var fluffy = new Cat("Fluffy", "White");
console.log('Before update', fluffy.age);
fluffy.age = 4;
console.log('After update', fluffy.age);
var muffin = new Cat("Muffin", "Brown");
console.log('New object', muffin.age);
从类创建新实例时,如果要更改该实例中的值,则需要使用该实例而不是原始类