繁体   English   中英

为什么JavaScript原型方法对于同一属性输出不同?

[英]Why does JavaScript prototype method output differently for the same property?

有人可以像我缺乏基本的大脑功能那样向我解释为什么fluffy.age输出3muffin.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); 

从中创建实例后,您将更新原型。 因此,该实例不包含更新的原型属性。

 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); 

从类创建新实例时,如果要更改该实例中的值,则需要使用该实例而不是原始类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM