对象浅复制
1. Object.assign() 对象浅复制
/** * Created by itw_zhangdl on 2018/1/10. */ let obj = { name: 'zhang', age: 10, friends: ['1',2,23] } let obj2 = Object.assign({}, obj) obj.friends.push('4') console.log(obj2)//{ name: 'zhang', age: 10, friends: [ '1', 2, 23, '4' ] }
2.Object.creat() 详情看ES6 对象的扩展
Object.getOwnPropertyDescriptors
方法的另一个用处,是配合Object.create
方法,将对象属性克隆到一个新对象。这属于浅拷贝。
对象深复制
1.JSON.parse(JSON.stringify(obj))
缺点:只针对数组或者对象,函数不行
let obj = { name: 'zhangsan', friends: ['lisi', 'baoqiang', 'dada'] } let obj3 = obj let obj2 = JSON.parse(JSON.stringify(obj)) console.log(obj3, 'obj3') obj3.name = 'zhangsi' console.log(obj, 'obj') console.log(obj3, 'obj3') console.log(obj2, 'obj2')
未完待续,以后总结。。。