Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么是Object.assign()而不是this.assign()(用于对象)?_Javascript_Object - Fatal编程技术网

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

Javascript 为什么是Object.assign()而不是this.assign()(用于对象)?,javascript,object,Javascript,Object,我正在从事一个JavaScript项目,只是想知道为什么一个对象实例不继承assign()和其他方法,而不必调用超类(superobject?object方法 为什么是Object.assign()而不是this.assign()(用于对象)?因为继承在JavaScript中的工作方式。引用 使用new时,会发生四件事: 它会创建一个新的空对象 它将此绑定到我们新创建的 反对 它在新创建的对象上添加了一个名为 “proto”它指向构造函数的原型 反对 它在函数末尾添加了一个returnthis

我正在从事一个JavaScript项目,只是想知道为什么一个对象实例不继承
assign()
和其他方法,而不必调用超类(superobject?
object
方法


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

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

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

  • 它会创建一个新的空对象
  • 它将此绑定到我们新创建的 反对
  • 它在新创建的对象上添加了一个名为 “proto”它指向构造函数的原型 反对
  • 它在函数末尾添加了一个returnthis,以便 创建的对象将从函数返回

  • 因此超级对象方法不会复制到新对象。它们可以通过新创建的对象的原型进行访问。

    因为数百万行遗留代码中的每个构造函数都创建了对象,这些对象必须能够在基本
    对象上找到它们。原型
    对象,与常见名称(如“assign”)发生冲突的可能性非常大。(即使是非传统的全新代码也必须围绕这些符号工作。)如何创建对象?->原型遗传这只是我的假设;你必须向语言委员会投票或寻找旧的电子邮件线程等。我认为,与添加到每个实例的
    toString
    valueOf
    不同,向每个
    对象的实例中添加另一个方法而不是将其存储在一个位置是有“成本”的。