【问题标题】:Is there any difference between the results of Dog.prototype = Object.create(Animal.prototype) and Dog.prototype = {...Animal.prototype}?Dog.prototype = Object.create(Animal.prototype) 和 Dog.prototype = {...Animal.prototype} 的结果有什么区别吗?
【发布时间】:2022-06-22 17:01:24
【问题描述】:

Dog.prototype = Object.create(Animal.prototype)Dog.prototype = {...Animal.prototype}的结果有区别吗?

【问题讨论】:

  • 有很多不同之处。你会发现一些通过简单的类进行测试。

标签: javascript javascript-objects prototype


【解决方案1】:

如果您创建一个新对象(使用扩展运算符的浅拷贝功能),则对原始对象的更改将不会应用于新对象。

【讨论】:

    【解决方案2】:

    表面上,一个只是复制properties,另一个基本上是创建Animalnew副本:

    解构副本还会复制源对象中的所有引用,因此Dog 上的更改可能会影响Animal,这可能不是您想要的。

    【讨论】:

      猜你喜欢
      • 2016-08-20
      • 2020-10-04
      • 1970-01-01
      • 2021-12-22
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-22
      相关资源
      最近更新 更多