我想知道是否有人知道点差运算符
cosnt newArray = [...oldArray];
使用lodash方法
const newArray = _.clone(oldArray);
过时?
或更重要的是,如果其中一种方法更有效?
**这是一个浅表克隆,只希望对象引用在新数组中。
谢谢!
_.clone
可以用于除数组之外的许多事物other:
此方法大致基于结构化克隆算法,并支持克隆数组,数组缓冲区,布尔值,日期对象,映射,数字,对象对象,正则表达式,集合,字符串,符号和类型化数组。参数对象自己的可枚举属性被克隆为普通对象。返回一个空对象以获取不可克隆的值,例如错误对象,函数,DOM节点和WeakMaps。
相反,数组上下文中的传播语法仅对iterable对象(例如数组和某些具有Symbol.iterator
属性的其他集合)起作用,并且仅产生纯数组。可以用_.clone
调用许多东西来浅化克隆它们,而这些问题不能通过数组扩展来完成-例如普通对象。
((存在诸如对象传播之类的东西,可以浅层复制对象,但是语法是pretty新的)]
要考虑的另一件事是浏览器兼容性-传播语法需要ES6支持,而库方法_.clone
的调用则不需要。
clone
似乎比扩展运算符:https://www.measurethat.net/Benchmarks/ShowResult/81691快。
但是,作为javascript in an expensive resource to process,添加一个库来完成Vanilla js可以完美完成的工作可能不是一个好主意。