Object.assign和just assign之间的区别

时间:2016-02-06 13:51:31

标签: javascript node.js

我想知道它之间的区别:

Object.assign(otherObject, {
  someNewProperty: ''
});

otherObject.someNewProperty = '';

而且......哪一个更快?

感谢。

3 个答案:

答案 0 :(得分:8)

  

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

otherObject.someNewProperty = '';是一种直接为对象的某个属性赋值的方法。

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

答案 1 :(得分:3)

对于单个属性,直接赋值(otherObject.someNewPropertie ='')快两倍,但对于多个值 - 时间会增长。每个属性+ 5-10%。此外,代码方式的Object.assign对于多个选项更好。

Object.assign(otherObject, {
  prop1: '',
  prop2: '',
  prop3: '',
  ...
});

VS

otherObject.prop1 = '';
otherObject.prop2 = '';
otherObject.prop3 = '';
...

您只需在Chrome开发工具中运行“个人档案”标签,然后进行少量测试。

答案 2 :(得分:1)

Object.assign()是一个非常通用的功能,旨在执行复杂的对象组合。

属性点表示法是将单个值分配给单个属性的直接方式。

关于哪个更快,考虑到这些并不相同,并且作为我的all time favorite posts之一注意到&#34; 询问哪一个运行得更快可能是非首发< / EM>&#34;