码迷,mamicode.com
首页 > 其他好文 > 详细

对象的扩展-Object.assign()

时间:2021-01-26 11:56:51      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:nbsp   div   sig   属性   efi   info   mamicode   结果   bsp   

1.只会拷贝本身的属性,不会拷贝prototype上的属性

2.如果有同名的属性,后面的会覆盖前面的

3.target如果不是对象,是string,number或者boolean,会先转化为包装类

4.如果target是undefined,null,无法转化为包装类,那么报错

5.如果source不是对象,只有是string,可以计算,否则没有影响

let target = {a: 1};
let source1 = {
    abc: 25,
    cde: 27
};

let source2 = {
    abc: 27,
    x: 17,
    y: ‘abc‘
};

source1.__proto__.b = 5;
console.log(source1.b);

console.log(Object.assign(target, source1, source2));
console.log(target);
console.log(Object.assign(2, source1, source2));
console.log(Object.assign({}, ‘abc‘, 123, true));
 
=================运行的结果===================
技术图片

6.Object.assign的拷贝是浅拷贝,不是深拷贝

let target = {
    a: 1,
    b: {
        x: 5,
        y: 7
    }
};

let source = {
    b: {
        z: 9,
        h: 51
    }
}

console.log(Object.assign(target, source));
=================运行的结果===================
技术图片
 

对象的扩展-Object.assign()

标签:nbsp   div   sig   属性   efi   info   mamicode   结果   bsp   

原文地址:https://www.cnblogs.com/Friday1/p/14320925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!