有時候會遇到這樣的題目,要求對js中的5種資料類型進行值複制,那下面來進行一下實作吧
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>js中的5種資料類型進行值複制</title>
</head>
<body>
<script>
function clone( obj ) {
var copy;
switch( typeof obj ) {
case "undefined":
break;
case "number":
copy = obj - 0;
break;
case "string":
copy = obj + "";
break;
case "boolean":
copy = obj;
break;
case "object": //object分為兩種情況 對象(Object)和數組(Array)
if(obj === null) {
copy = null;
} else {
if( object.prototype.toString.call(obj).slice(8, -1) === "Array") {
copy = [];
for( var i = 0 ; i < obj.length ; i++ ) {
copy.push(clone(obj[i]));
}
} else {
copy = {};
for( var j in obj) {
copy[j] = clone(obj[j]);
}
}
}
break;
default:
copy = obj;
break;
}
return copy;
}
</script>
</body>
</html>