原生JavaScript实现assign

assign的用途还是比较广泛的,它主要用于合并多个对象,其实它本身的逻辑并不算很复杂,实现起来只要思路清晰还是比较简单啊的

// Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
Object.my_assign = function(target, ...args) {
    if (target == undefined || target == null) {
        throw TypeError(target + "is not a object");
    }
    target = Object(target) //保证target是一个对象
    for (item of args) { //获取参数列表中的所有对象
        for (val in item) { //获取这个对象的所有属性
            item.hasOwnProperty(val) && (target[val] = item[val])
                //如果这个属性是这个对象本身的,就将它添加到target对象上
        }
    }
    return target
}
let a = { a: 2, b: 5 }
let b = { name: 123, age: 12 }
let c = { hell: 'l', lo: 'o' }
console.log(Object.my_assign(a, b, c))
console.log(a)
//{ a: 2, b: 5, name: 123, age: 12, hell: 'l', lo: 'o' }
//{ a: 2, b: 5, name: 123, age: 12, hell: 'l', lo: 'o' }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值