js复制一个对象给另一个变量

js中如果只是用var objNew = objOld来将一个对象赋值给另一个对象,这实际上是将objOld的内存地址值赋值到给了objNew,当之后objNew对象发生的任何变化都会同样作用于objOld对象中;

  • 现在的需求是:我只想要一个和objOld对象内部结构及内容一模一样的对象,但是对这个新变量的任何修改操作都不会作用到objOld对象中,具体实现代码如下:
function clone(myObj){
	if(typeof(myObj) != 'object'){
		return myObj;
	}
	if(myObj == null){
		return myObj;
	}
	if(myObj instanceof Array){
		var myNewObj = new Array();
	}else{
		var myNewObj = new Object();	
	}
	for(var i in myObj){
		myNewObj[i] = clone(myObj[i]);
	}
	return myNewObj;
};

使用时,直接像如下这样使用:

var objNew = clone(objOld); // 这里objOld是你想要复制的对象

发现一个大佬的方法既简单又方便。传送门:https://blog.csdn.net/Janus_lian/article/details/88977177

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值