Object.assign 浅拷贝还是深拷贝
2018-01-30 17:49
375 查看
Object.assign 可以把 n 个源对象拷贝到目标对象中去,如下
let m ={name: {asd: '123'}}
let n = Object.assign({}, m)
console.log(n)
运行结果:
例1
let s ={name: {asd: '123'}}
let d = Object.assign({}, s)
d.name.asd = '123456789'
console.log(d, s)运行结果:
let o ={name: {asd: '123'}}
let p = Object.assign({}, o)
p.name = '123456789'
console.log(p, o)
运行结果:
{name: "123456789"}
let m ={name: {asd: '123'}}
let n = Object.assign({}, m)
console.log(n)
运行结果:
{name: {asd: '123'}}那到底是深拷贝还是浅拷贝呢,答案是第一级属性深拷贝,以后级别属性浅拷贝 。大家看下面两段代码
例1
let s ={name: {asd: '123'}}
let d = Object.assign({}, s)
d.name.asd = '123456789'
console.log(d, s)运行结果:
{name:{asd: "123456789"}}
{name:{asd: "123456789"}}例2
let o ={name: {asd: '123'}}
let p = Object.assign({}, o)
p.name = '123456789'
console.log(p, o)
运行结果:
{name: "123456789"}
{name: {asd: "123"}}
相关文章推荐
- Object的原型拷贝-create、assign、getPrototypeOf 方法的结合
- Object的原型拷贝-create、assign、getPrototypeOf 方法的结合
- js对象深度拷贝、Object.assign()、Object.assign()复制非对象、Object.assign()浅拷贝
- 小悟:Object.assign() “深拷贝”
- JavaScript 对象拷贝与Object.assign
- JavaScript对象拷贝与Object.assign用法实例分析
- 对Object.assign的拷贝分析
- ES6:扩展运算符(...)与Object.assign()中的部分深拷贝
- 使用extend 解决Object.assign 浅拷贝问题
- (3) java.lang.Object.clone()方法 以及 深拷贝浅拷贝 及其 实现
- 【整理】Object-C中的属性(Property)的Setter:assign,copy,retain,weak,strong之间的区别和联系
- 【angular】浏览器低版本报错,Object.assign
- iOS 关于修饰代理用weak还是assign
- vue android低版本 白屏问题 你是不是用了Object.assign ??
- Object instanceof Function 还是 Function instance of Object,是真是假,一一道来
- assign,copy,retain -Object-C中纠结的三个属性(copy)
- java参数传递,引用还是拷贝
- 鸡与蛋问题(先有Class还是先有Object)
- Windows内核开发中如何区分文件对象究竟是文件还是文件夹?(FILE_OBJECT包括了无数详细信息)
- Object-c 深拷贝和浅拷贝