js深拷贝与浅拷贝

直接上代码吧

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<meta name="format-detection" content="telephone=no" />
<title>拷贝</title>
</head>
<body>
<script>
var a={
name:"a",
value:[
{e:10,f:20,d:30},
{e:10,f:20,d:30},
{e:10,f:20,d:{
v:20,
c:100,
d:[1,2,3]
}},
]
}



var b;
/************浅拷贝*************/
/*function clone(obj) {
var src ={};
for(var k in obj){
src[k] = obj[k]
}
return src;
}

b = clone(a);*/

/*****************深拷贝*******************/

function deepClone ( obj ) {
var dst = obj instanceof Array ? [] : {}, k;
for ( k in obj ) {
if ( typeof obj[ k ] === 'object' ) {
dst[ k ] = deepClone( obj[ k ] );
} else {
dst[ k ] = obj[ k ];
}
}
return dst;
}
b = deepClone(a);

a.value[2].f="修改值";
console.log("a",a);
console.log("b",b);
</script>
</body>
</html>
posted @ 2017-11-03 10:53  森界降临  阅读(397)  评论(0编辑  收藏  举报