克隆javascript对象的三个方法小结

2019-12-24,,,

方法一
复制代码 代码如下:
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' :
if(obj === null){
o = null;
}else{
if(obj instanceof Array){
o = [];
for(var i = 0, len = obj.length; i < len; 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;
}

方法二
复制代码 代码如下:
function clone2(obj){
var o, obj;
if (obj.constructor == Object){
o = new obj.constructor();
}else{
o = new obj.constructor(obj.valueOf());
}
for(var key in obj){
if ( o[key] != obj[key] ){
if ( typeof(obj[key]) == 'object' ){
o[key] = clone2(obj[key]);
}else{
o[key] = obj[key];
}
}
}
o.toString = obj.toString;
o.valueOf = obj.valueOf;
return o;
}

方法三
复制代码 代码如下:
function clone3(obj){
function Clone(){}
Clone.prototype = obj;
var o = new Clone();
for(var a in o){
if(typeof o[a] == "object") {
o[a] = clone3(o[a]);
}
}
return o;
}

您可能感兴趣的文章:

  • JS对象深度克隆实例分析
  • JavaScript对象之深度克隆介绍
  • 一行代码实现纯数据json对象的深度克隆实现思路
  • JS扩展类,克隆对象与混合类实例分析
  • JS克隆,属性,数组,对象,函数实例分析
  • JavaScript 深层克隆对象详解及实例
  • js克隆对象、数组的常用方法介绍
  • javascript克隆对象深度介绍
  • js中的面向对象入门
  • JS对象创建的几种方式整理
  • JS对象的深度克隆方法示例

《克隆javascript对象的三个方法小结.doc》

下载本文的Word格式文档,以方便收藏与打印。