对 Object.assign 的理解

let obj1 = { a: 1, b: 2 };
let obj2 = { b: 4, c: 5 };

// 第一个参数是目标对象 
// 第二个是源对象 
// 源对象可以是多个
let obj3 = Object.assign(obj1 , obj2 )

console.log(obj1) // { a: 1, b: 4, c: 5 }
console.log(obj3) // { a: 1, b: 4, c: 5 }

// Object.assign 方法执行的是浅拷贝
// 被 Object.assign 方法赋值的变量和目标对象的某个属性有改动,则两个对象都会变化

obj1.a = 123
obj1.b = 456
obj3.c = 789
console.log(obj1) //{ a: 123, b: 456, c: 789 }
console.log(obj3) //{ a: 123, b: 456, c: 789 }

我的用处

在 vue 中向后端发送请求调取接口后可以通过 Object.assign 将有用的值赋值到this中

data中的数据
data() {
    return {
        name: '',
        age: ''
    }
}
methods中的方法
methods: {
	//假装我在初始化
    initialize() { 
    	// 假装我是接口
        Interface().then((res) => {
        	// 利用结构赋值将返回的 res 中的数据解构,方便后续使用
            let { code, data, message } = res
            if (code === '00') {
            // 定义一个对象,将res中需要的属性单独抽离,与vue实力用的属性进行合并。
            // 根据 Object.assign 本身特性,如果源对象和目标对象中的属性相同,目标对象中的属性将被覆盖
                Object.assign(this, {
                    name: data.name,
                    age: data.age
                })
            } else {
                this.$message.warning(message)
            }
        }).catch((err) => {
            this.$message.error('服务器繁忙请稍后再试!')
        });
    }
}
created中的导入
created() {
    this.initialize()
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值