利用递归实现深拷贝

	function res(a) {
			if (a == 1) {
				return 1
			}
			return res(a - 1) + a
		}
		console.log(res(100));

利用递归来实现1-100的和

        

var obj1 = {
			name: "赤妖碟",
			age: 18,
			friend: [
				"小红", "小猪佩奇", "张三", {
					name: "10086",
					say() {
						alert("该充钱了!")
					}
				}
			]
		}

		function copyObj(obj) {
			if (typeof obj != "object" || typeof obj == null) {
				return obj;
			} else {
				var shuzu; //定义一个空数组
				if (obj instanceof Array) {
					shuzu = [];
					for (var i = 0; i < obj.length; i++) {
						shuzu[i] = copyObj(obj[i])
					}
				} else {
					shuzu = {}
					for (var k in obj) {
						shuzu[k] = copyObj(obj[k]);
					}
				}
				return shuzu;
			}
		}

		var obj2 = copyObj(obj1);
		console.log(obj1);

利用递归来实现深拷贝

        深拷贝:两个相同引用类型数据不共用一份数据,简而言之,A,B虽然一样,但是A修改数据不会影响到B的数据

        浅拷贝:两个相同引用类型数据共用一份数据,A修改值,B随之也会变动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值