美文网首页
对象深拷贝浅拷贝

对象深拷贝浅拷贝

作者: 楼水流云 | 来源:发表于2019-10-08 15:10 被阅读0次

基本赋值
var a = 1
var b = a
a = 2
b == 1

var obj = {age:100}
var obj2 = obj
obj.age = 200
obj2.age == 200

浅拷贝只拷贝一层 用遍历 创建一个新对象赋值
var obj = {age:100,friend:{name:'ruoyu',sex:'male'}}

function shadiwCopy(obj){
var newobj = {}
for(var key in obj){
newobj[key] = obj[key]
}
return newobj
}
var obj3 = shadowCopy(obj)
obj3.age = 400
console.log(obj3)

深拷贝用递归
var obj = {age:100,friend:{name:'ruoyu',sex:'male'}}

function copy(obj){
var newobj = {}
for(var key in obj){
if(!obj.hasIwnProperty(key)){
if(typeof obj[key] === 'number' || typeof obj[key] === 'boolean'
|| typeof obj[key] === 'string' || typeof obj[key] === 'undefined'
|| typeof obj[key] === 'null')
newobj[key] = obj[key]
}else{
newobj[key] = copy(obj[key])
}
}
return newobj
}
var obj3 = copy(obj)
obj3.age = 400
console.log(obj3)

JSON深拷贝
JSON深拷贝 解析成对象 再作一个赋值 JSON.stringify()把对象转化成字符串 JSON.parse()把字符串重新生成一个对象
JSON.parse(JSON.stringify(要拷贝的对象))

相关文章

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

  • 2018-10-10函数基础

    深拷贝和浅拷贝 深拷贝 copy.deepcopy(对象)浅拷贝 copy.copy(对象)深拷贝: 将对象对应的...

  • 2018-10-10day9函数基础

    1.浅拷贝、深拷贝 copy.copy(对象):浅拷贝copy.deepcopy(对象):深拷贝""" """拷贝...

  • iOS深拷贝(MutableCopy)与浅拷贝(Copy)的区别

    深拷贝和浅拷贝的概念 iOS中有深拷贝和浅拷贝的概念,那么何为深拷贝何为浅拷贝呢?浅拷贝:浅拷贝并不拷贝对象本身,...

  • 深浅拷贝,面向对象,Symbol,Set,Map

    一:浅拷贝与深拷贝对象的浅拷贝:浅拷贝是对象共用的一个内存地址,对象的变化相互影响。对象的深拷贝:简单理解深拷贝是...

  • 深拷贝浅拷贝

    1.拷贝可变对象 深拷贝后浅拷贝可变对象,都是内存复制。 输出结果: 2.拷贝不可变对象 浅拷贝是指针拷贝,深拷贝...

  • day 9

    浅拷贝和深拷贝 copy.copy(对象):浅拷贝 copy.deepcopy(对象):深拷贝 copy.copy...

  • 深拷贝和浅拷贝不同

    浅拷贝:指针(地址)拷贝,不会产生新对象深拷贝:内容拷贝,会产生新对象 非容器类对象的深拷贝、浅拷贝 非容器类对象...

  • 面试题iOS

    面试blog 1、深拷贝浅拷贝:浅拷贝就是拷贝对象的指针,而不复制引用对象本身;深拷贝就是拷贝引用对象本身;浅复制...

  • 浅拷贝和深拷贝与(基本复杂类型)数组去重

    对象浅拷贝和深拷贝 //浅拷贝 //深拷贝 所有继承了 Object 的对象都会继承到 hasOwnPropert...

网友评论

      本文标题:对象深拷贝浅拷贝

      本文链接:https://www.haomeiwen.com/subject/opqcpctx.html