Object.assign详解

一、Object.assign是什么?

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

二、用法

Object.assign(target, ...sources)

参数:target ------>目标对象

source ------>源对象

返回值:target,即目标对象

三、使用示例

1.目标对象的源对象无重名属性

复制代码
let obj = {a:1,c:20}
let obj1={b:2}
Object.assign(obj,obj1) 
console.log(obj)  //{a: 1, c: 20, b: 2}
console.log(obj1) //{b: 2}

//总结:
//Object.assign(obj,obj1) 
//第一个参数是目标对象,第二个参数以及后面的参数都是源对象 相当于把obj1添加到obj中
//Object.assign()方法 ------>影响到目标对象

2、目标对象和源对象有重名属性

复制代码
let obj = {a:1,c:20}
let obj1={b:2,c:30}
Object.assign(obj,obj1) 
console.log(obj)  //{a: 1, c: 30, b: 2}
console.log(obj1) //{b: 2, c: 30}


//总结:
// 如果目标对象与源对象有同名属性,则后面的属性会覆盖前面的属性

四、与$.extend( )的比较

复制代码
        var target={name:'guxin',age:18}
        var source1={state:'signle',age:22}
        var source2={mood:'happy',age:25}
        var result=Object.assign(target,source1,source2)
        console.log(target,'assign')
        var targetObj={name:'guxin',age:18}
        var sourceObj1={state:'signle',age:22}
        var sourceObj2={mood:'happy',age:25}
        var result=$.extend(targetObj,sourceObj1,sourceObj2)
        console.log(targetObj,'extend')

最终运行结果:

可以看到两者得到的结果是一样的。所以,我认为这两个方法,除了兼容性应该是一样的。

原文链接:Object.assign详解_guxin_duyin的博客-CSDN博客

相关推荐
用户72526496629697 分钟前
浏览器为什么加载不了超大图片
前端·javascript
OpsEye26 分钟前
企业 AI 治理到底管什么:预算、权限、会话、效能四个维度
javascript·ai编程
雪域迷影34 分钟前
Python Django 7 小时课程
开发语言·python·django
Escalating_xu1 小时前
【C 语言】编译和链接:从源文件、目标文件到可执行程序完整解析
c语言·开发语言
破烂三角裤1 小时前
Vue 3 自动生成汉字拼音:pinyin-pro、Ruby 标签
vue.js
Liuqy-051 小时前
线程的互斥与同步机制——互斥锁、条件变量、无名信号量
linux·开发语言·线程·进程·条件变量·同步·互斥
顽疲1 小时前
java vue springboot 养老系统源码详解:退住 care_out 审批结算与腾床事务实践
java·vue.js·spring boot·vue养老·springboot养老·java养老
雪芽蓝域zzs2 小时前
第 10 节:地图点击逆地理编码(点击地图获取经纬度 + 地址)
vue.js
geats人山人海2 小时前
java 7异常
android·java·开发语言
斯内普吖2 小时前
(开源)线上花店系统实战指南 基于 Java + SSM + Vue + MySQL
java·vue.js·mysql·开源