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

 更新时间:2011年01月12日 20:01:25   作者:  
克隆javascript对象的三个方法整理,需要的朋友可以参考下。
方法一
复制代码 代码如下:

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;
}

相关文章

  • 浅谈javascript中的instanceof和typeof

    浅谈javascript中的instanceof和typeof

    这篇文章主要简单介绍了javascript中的instanceof和typeof的相关资料,需要的朋友可以参考下
    2015-02-02
  • JavaScript登录验证码的实现

    JavaScript登录验证码的实现

    验证码功能真的无处不在,为了提高网站的安全性,验证码功能是必要的环节,今天小编通过本文给大家分享js登录验证码的实现,感兴趣的朋友跟着小编一起学习吧
    2016-10-10
  • JavaScript中const、var和let区别浅析

    JavaScript中const、var和let区别浅析

    在JavaScript中有三种声明变量的方式:var、let、const。但是有朋友不清楚这三种声明变量的区别,下面脚本之家小编给大家详细介绍下js中const、var和let的区别,感兴趣的朋友一起看看吧
    2016-10-10
  • JS加载iFrame出现空白问题的解决办法

    JS加载iFrame出现空白问题的解决办法

    在使用IE6浏览器开发过程中出现各种奇葩问题,非常棘手,费劲脑汁终于问题解决。小编把解决办法分享到脚本之家平台,需要的朋友可以参考下
    2016-05-05
  • JS运行耗时操作的延时显示方法

    JS运行耗时操作的延时显示方法

    今天用JS允许一个ActiveX,挺耗时的,想在允许时提示用户正在允许,而不至于漏斗在那里
    2010-11-11
  • 前端开发之JS生成32位随机数的方法举例

    前端开发之JS生成32位随机数的方法举例

    最近有个需求,是需要生成32位长度的随机数,下面这篇文章主要给大家介绍了关于前端开发之JS生成32位随机数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Electron实现应用打包、自动升级过程解析

    Electron实现应用打包、自动升级过程解析

    这篇文章主要介绍了Electron实现应用打包、自动升级过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • JavaScript深拷贝的几种实现方法实例

    JavaScript深拷贝的几种实现方法实例

    javascript深拷贝是初学者甚至有经验的开发着,都会经常遇到问题,下面这篇文章主要给大家介绍了关于JavaScript深拷贝的几种实现方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 固定表格行列(expression)在IE下适用

    固定表格行列(expression)在IE下适用

    本文为大家介绍下使用expression固定表格行列,这是一种在IE下适用的固定行列的方法,感兴趣的朋友可以学习下,希望对大家有所帮助
    2013-07-07
  • js HTML5多媒体影音播放

    js HTML5多媒体影音播放

    这篇文章主要为大家详细介绍了js HTML5多媒体影音播放,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论