0
点赞
收藏
分享

微信扫一扫

js深拷贝

dsysama 2022-03-16 阅读 64
javascript
function dc(o){
	if(o && typeof o === 'object'){//如果是对象类型
		let newo=Array.isArray(o)?[]:{} //初始化为数组或者对象
		for(k in o){ //循环拷贝
			if(o.hasOwnProperty(o[k])){ //只要自身属性,继承的不要
				if(o[k] && typeof o[k] === 'object'){ //如果此项是对象,继续深拷贝此项
					newo[k]=dc(o[k])
				}else newo[k]=o[k] //此项是基本数据类型,直接拷贝
			}
		}return newo
	}
    else return o //基本数据类型,直接返回
}
举报

相关推荐

0 条评论