为了账号安全,请及时绑定邮箱和手机立即绑定

js里关于浅拷贝的问题。

js里关于浅拷贝的问题。

子衿沉夜 2018-11-14 15:14:17
今天看着这么一段 代码 讲浅拷贝1、按道理讲 浅拷贝 不是应该仅仅复制对象的引用,而不是对象本身,那么 obj.c和obj.d都应该被修改了呀?2、var cloneObj=obj ,算不算浅拷贝,怎么理解?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

var cloneObj=obj // 这才是浅拷贝,改变这里会联动改变

// 这个方法不是浅拷贝,是一级深拷贝,二级拷贝是浅拷贝,因为obj[i] = initalObj[i];就相当于你的var cloneObj=obj 。

function simpleClone(initalObj) {

    var obj = {};

    for ( var i in initalObj) {

        obj[i] = initalObj[i]; ////////注意这里  除非你递归赋值

    }

    return obj;

}

所以

cloneObj.a = "changed"; // obj不变

cloneObj.b.a = "changed"; // obj改变


查看完整回答
反对 回复 2018-12-12
  • 1 回答
  • 0 关注
  • 465 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信