Javascript 为什么是Object.assign()而不是this.assign()(用于对象)?
我正在从事一个JavaScript项目,只是想知道为什么一个对象实例不继承Javascript 为什么是Object.assign()而不是this.assign()(用于对象)?,javascript,object,Javascript,Object,我正在从事一个JavaScript项目,只是想知道为什么一个对象实例不继承assign()和其他方法,而不必调用超类(superobject?object方法 为什么是Object.assign()而不是this.assign()(用于对象)?因为继承在JavaScript中的工作方式。引用 使用new时,会发生四件事: 它会创建一个新的空对象 它将此绑定到我们新创建的 反对 它在新创建的对象上添加了一个名为 “proto”它指向构造函数的原型 反对 它在函数末尾添加了一个returnthis
assign()
和其他方法,而不必调用超类(superobject?object
方法
为什么是Object.assign()而不是this.assign()(用于对象)?因为继承在JavaScript中的工作方式。引用 使用new时,会发生四件事:
因此超级对象方法不会复制到新对象。它们可以通过新创建的对象的原型进行访问。因为数百万行遗留代码中的每个构造函数都创建了对象,这些对象必须能够在基本
对象上找到它们。原型对象,与常见名称(如“assign”)发生冲突的可能性非常大。(即使是非传统的全新代码也必须围绕这些符号工作。)如何创建对象?->原型遗传这只是我的假设;你必须向语言委员会投票或寻找旧的电子邮件线程等。我认为,与添加到每个实例的toString
或valueOf
不同,向每个对象的实例中添加另一个方法而不是将其存储在一个位置是有“成本”的。