一つの関数cloneを実現すると、JavaScriptのうちの5つの主要なデータタイプ(Number、String、Object、Aray、Booleanを含む)に値をコピーできます.
6003 ワード
転載元:https://www.cnblogs.com/gxq666/archive/2018/12/27/10182940.html
// :
Object.prototype.clone = function() {
var o = this.constructor === Array ? [] : {};
for (var e in this) {
o[e] = typeof this[e] === "object" ? this[e].clone() : this[e];
}
return o;
};
// :
/**
*
* @param Obj
* @returns
*/
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;
}
}