js里关于浅拷贝的问题。

今天看着这么一段 代码 讲浅拷贝

https://img4.mukewang.com/5c10a3cd00012f3b07910697.jpg

1、按道理讲 浅拷贝 不是应该仅仅复制对象的引用,而不是对象本身,那么 obj.c和obj.d都应该被修改了呀?

2、var cloneObj=obj ,算不算浅拷贝,怎么理解?


子衿沉夜
浏览 466回答 1
1回答

BIG阳

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改变
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript