Object.assign(),lodash中assign和merge的区别

更新时间:2023-05-25 06:22:33 阅读: 评论:0

Object.assign(),lodash中assign和merge的区别
⼀、object.assign⽅法的第⼀个参数是⽬标对象,后⾯的参数都是源对象。
⼀、
如果⽬标对象与源对象有同名属性,或多个源对象有同名属性,则后⾯的属性会覆盖前⾯的属性。
const target={a:1,b:1};
const source1={b:2,c:2};
摇滚童话
const source2={c:3};
人琴俱亡翻译Object.assign(target,source1,source2);
target// {a:1, b:2, c:3}
Object.assign⽅法实⾏的是浅拷贝,⽽不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么⽬标对象拷贝得到的是这个对象的引只拷贝第⼀层
⽤。只拷贝第⼀层
⼆、merge 也和 assign 类似,不同的地⽅在于 merge 遇到相同属性的时候,如果属性值为纯对象(plain object)或者集合(collection)时,不⼆、
摘取梦想的启明星绯闻女孩第一季插曲
是⽤后⾯的属性值去覆盖前⾯的属性值,⽽是会把前后两个属性值合并。圣诞节英语对话
三、对象深拷贝
function deepCopy(obj) {
经典词汇
watchguardvar result = Array.isArray(obj) ? [] : {};les mirables
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key]!==null) {
贱人就是矫情 英文
result[key] = deepCopy(obj[key]);  //递归复制
} el {
result[key] = obj[key];
robert holley
}
}
}
return result;
}

本文发布于:2023-05-25 06:22:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/121760.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:属性   对象   绯闻
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图