Object.assign和刚分配的区别

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

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

 otherObject.someNewProperty = ''; 

而且哪一个更快?

谢谢。

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

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

当然第二种方法,用点符号给对象赋值更快。

您可以在这里查看性能: jsperf.com/diff-assign

Object.assign()是一个相当通用的函数,用来完成复杂的对象组合。

属性点符号是将单个值分配给单个属性的简单方法。

关于哪一个更快,这是不相关的,考虑到这些不相同,作为我所有时间最喜欢的职位之一,“ 问哪一个跑得快可能是一个非首发 ”。

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

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

VS

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

您只需在Chrome开发工具中运行configuration文件选项卡,然后运行一些testing。