Object.assign和just assign之间的区别

14 javascript node.js

我想知道这个之间的区别:

Object.assign(otherObject, {
  someNewProperty: ''
});
Run Code Online (Sandbox Code Playgroud)

otherObject.someNewProperty = '';
Run Code Online (Sandbox Code Playgroud)

而且..哪一个更快?

谢谢.

小智 9

对于单个属性,直接赋值 ( otherObject.someNewProperty = '') 速度要快两倍,但对于多个值 - 时间会增加。每个属性+5%到10%。此外,按代码方式Object.assign对于多个选项来说更好。

Object.assign(otherObject, {
  prop1: '',
  prop2: '',
  prop3: '',
  ...
});
Run Code Online (Sandbox Code Playgroud)

VS

otherObject.prop1 = '';
otherObject.prop2 = '';
otherObject.prop3 = '';
...
Run Code Online (Sandbox Code Playgroud)

您只需在 Chrome 开发工具中运行“配置文件”选项卡并运行一些测试即可。


Vic*_*ves 9

所述Object.assign()方法被用于从一个或多个源对象中所有可枚举自己的属性的值复制到目标对象.它将返回目标对象.

otherObject.someNewProperty = '';是将值直接分配到一个对象的某些属性的方法.

显然这种Object.assign模式要慢得多:jsperf.com/assign-vs-equals