您的位置:首页 > 移动开发 > Objective-C

Object.assign 浅拷贝还是深拷贝

2018-01-30 17:49 375 查看
Object.assign 可以把 n 个源对象拷贝到目标对象中去,如下

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"}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: