Lodash 中 assign、extend、merge区别
一 Lodash 中 assign、extend、merge区别:(assign、extend、merge)
相同之处
- 都可以用来合并对象
- 都会修改原来的对象 (如果原来的对象是作为函数的第一个参数的话)
不同之处
assign
函数不会处理原型链上的属性,也不会合并相同的属性,而是用后面的属性值覆盖前面的属性值
extend
- 3.x 版本中和
assign
一样 - 4.x 版本中会合并原型链上的属性
merge
遇到相同属性名的时候,如果属性值是纯对象或集合的时候,会合并属性值
二 ES6 Object.assign():Object.assign()痛点
Object.assign()
只是一级属性复制,比浅拷贝多深拷贝了一层而已