首页 > 解决方案 > 为什么是 Object.assign() 而不是 this.assign() (对于对象)?

问题描述

我正在开发一个 JavaScript 项目,只是想知道为什么对象实例不继承 theassign()和其他方法,而不必调用超类(超对象?)Object方法。

为什么是 Object.assign() 而不是 this.assign() (对于对象)?

标签: javascriptobject

解决方案


因为继承在 javacript 中的工作方式。引用自

https://codeburst.io/javascript-for-beginners-the-new-operator-cee35beb669e

当你使用 new 时,会发生四件事:

  1. 它创建了一个新的空对象。
  2. 它将 this 绑定到我们新创建的对象。
  3. 它在我们新创建的对象上添加了一个名为“<strong>proto”的属性,该属性指向构造函数的原型对象。
  4. 它将 return this 添加到函数的末尾,以便从函数返回创建的对象。

所以超级对象方法不会被复制到新对象中。它们可以通过新创建的对象的原型访问。


推荐阅读