收藏 分销(赏)

深入理解JavaScript中的对象复制(Object-Clone).doc

上传人:精**** 文档编号:9704881 上传时间:2025-04-03 格式:DOC 页数:2 大小:16.50KB
下载 相关 举报
深入理解JavaScript中的对象复制(Object-Clone).doc_第1页
第1页 / 共2页
深入理解JavaScript中的对象复制(Object-Clone).doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
  下面小编就为大家带来一篇深入理解JavaScript中的对象复制(Object Clone)。小编觉得挺不错的,现在分享给大家,也给大家做个参考。   JavaScript中并没有直接提供对象复制(Object Clone)的方法。因此下面的代码中改变对象b的时候,也就改变了对象a。   a = {k1:1, k2:2, k3:3};   b = a;   b.k2 = 4;   如果只想改变b而保持a不变,就需要对对象a进行复制。   用jQuery进行对象复制   在可以使用jQuery的情况下,jQuery自带的extend方法可以用来实现对象的复制。   a = {k1:1, k2:2, k3:3};   b = {};   $.extend(b,a);   自定义clone()方法来实现对象复制   下面的方法,是对象复制的基本想法。   Object.prototype.clone = function() {    var copy = (this instanceof Array) ? [] : {};    for (attr in this) {     if (!obj.hasOwnProperty(attr)) continue;     copy[attr] = (typeof this[i] == "object")?obj[attr].clone():obj[attr];    }     return copy;   };   a = {k1:1, k2:2, k3:3};   b = a.clone();   下面的例子则考虑的更全面些,适用于大部分对象的深度复制(Deep Copy)。   function clone(obj) {     // Handle the 3 simple types, and null or undefined     if (null == obj || "object" != typeof obj) return obj;     // Handle Date     if (obj instanceof Date) {       var copy = new Date();       copy.setTime(obj.getTime());       return copy;     }     // Handle Array     if (obj instanceof Array) {       var copy = [];       for (var i = 0, var len = obj.length; i < len; ++i) {         copy[i] = clone(obj[i]);       }       return copy;     }     // Handle Object     if (obj instanceof Object) {       var copy = {};       for (var attr in obj) {         if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);       }       return copy;     }     throw new Error("Unable to copy obj! Its type isn't supported.");   }   以上这篇深入理解JavaScript中的对象复制(Object Clone)就是小编分享给大家的全部内容了,希望能给大家一个参考   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服