JS 对象克隆的方法

对象浅复制

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')

未完待续,以后总结。。。

原文地址:https://www.cnblogs.com/z-dl/p/8259381.html