网上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
编写一个函数实现对Object,Array,Boolean,Number,String这五种主要数据类型进行值复制。
网上搜到的参考解答:Object,Array,Boolean,Number,String分为三种情况:普通变量,Array,Object ,使用递归调用方式解题-->
<h1 id="arra"></h1>
<h1 id="obj"></h1>
<h1 id="num"></h1>
<script>
function clone(Obj){
var buf;
if(Obj instanceof Array){
buf = []; //创建一个空数组
var i = Obj.length;
while(i--){
buf[i] = clone(Obj[i]);
}
return buf;
}
else if (Obj instanceof Object) {
buf = {}; //创建一个空对象
for(var k in Obj){
buf[k] = clone(Obj[k]);
}
return buf;
}
else {
return Obj; //普通对象直接赋值
}
}
var data = clone([1,2,3,4,5,'fff']);
document.getElementById("arra").innerHTML = data;
console.log(data);
var data1 = clone({'id':1,'name':'lily'});
document.getElementById("obj").innerHTML = data1.id + data1.name;
console.log(data1);
var data2 = clone(111);
document.getElementById("num").innerHTML = data2;
console.log(data2);
</script>
</body>
</html>