常见的面试题,实现一个函数 clone(),可以对 JavaScript 中的5种主要的数据类型进行值复制。

JavaScript 中的5种主要的数据类型包括 Number、String、Object、Array、Boolean,下面一起来看看这个函数

function clone(obj) {
var o;
switch (typeof obj) {
case “undefined”:
break;
case “string”:
o = obj + “”;
break;
case “number”:
o = obj - 0;
break;
case “boolean”:
o = obj;
break;
case “object”: // object 分为两种情况 对象(Object)或数组(Array)
if (obj === null) {
o = null;
} else {
if (Object.prototype.toString.call(obj).slice(8, -1) === “Array”) {
o = [];
for (var i = 0; i < obj.length; i++) {
o.push(clone(obj[i]));
}
} else {
o = {};
for (var k in obj) {
o[k] = clone(obj[k]);
}
}
}
break;
default:
o = obj;
break;
}
return o;
}

猜你喜欢

转载自blog.csdn.net/Honey_tianming/article/details/82838298