对象类型值复制及JS中Object.prototype.toString方法的原理
JavaScript中Object.prototype.toString()
通过Object.prototype.toString方法判断某个对象值属于哪种内置类型.
var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]"
实现了函数clone,对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
/** * 克隆值(Number、String、Object、Array、Boolean) * 递归调用 */ function clone(obj) { var a; switch (typeof obj) { case "undefined": break; case "number": a = obj - 0; break; case "boolean": a = obj; break; case "string": a = obj + ''; break; case "object": if(obj === null) { a = null; } else { if(Object.prototype.toString.call(obj).slice(8, -1) === "Array") { a = []; for(var i=0; i<obj.length; i++) { a.push(clone(obj[i])); } } else { a = {}; for (var i=0; i<obj.length; i++) { a[i] = clone(obj[i]); } } } break; default: a = obj; break; } return a; }
https://github.com/KeNanMi

浙公网安备 33010602011771号