js深拷贝

本文深入探讨了JavaScript中实现深拷贝的一种方法,通过递归遍历对象或数组的每一个属性,确保创建出完全独立的新对象,避免了引用类型带来的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码,我封装的方法如下:

function deepClone(origon,target){
	var target = target || {}//如果没传target就给target赋值为{}
	// var toStr = Object.property.toString
	var toStr = Object.prototype.toString
	var str = '[object Array]'
	for(var prop in origon) {
		if(origon.hasOwnProperty(prop)){//判断这个属性是不是自己身上的
			if(origon[prop] !== null && typeof(origon[prop]) == 'object'){//对null进行处理
            target[prop] = toStr.call((origon[prop])) == str ? [] : {}
            console.log(toStr(origon[prop]))
			deepClone(origon[prop],target[prop])
			}else{//如果是原始值直接复制
				target[prop] = origon[prop]
					}
		}
	}
	return target
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值