Dog.prototype = Object.create(Animal.prototype)和Dog.prototype = {...Animal.prototype}的结果有什么不同?
发布于 2022-06-22 09:02:51
有几个不同之处,包括:
{...Animal.prototype}将创建一个独立的原型,它可以过自己的生活,而不知道可能会给Animal.prototype带来的财产转让。
{...Animal.prototype}只复制可枚举的属性,而且某些方法可能不会复制,因此您将忽略它们。发布于 2022-06-22 09:01:24
在表面上,一个只是复制属性,另一个基本上是创建Animal的新副本。

析构副本还复制源对象中的所有引用,因此Dog上的更改可能会影响Animal,这可能不是您想要的。
发布于 2022-06-22 09:00:13
如果您创建了一个新对象(使用扩展运算符的浅复制能力),那么对原始对象的更改将不会应用于新对象。
https://stackoverflow.com/questions/72712484
复制相似问题