克隆javascript对象的三个方法小结
2011-01-12 00:00
881 查看
方法一
方法二
方法三
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对象的三个方法小结
- JavaScript克隆对象的三个实用方法
- JavaScript常用对象的方法和属性小结
- 克隆javascript对象-目前最完美的方法
- JavaScript常用对象的方法和属性小结
- javascript检测对象中是否存在某个属性判断方法小结
- javascript想看清一个对象的本质就要用到这三个方法
- Javascript中获取对象的原型对象的方法小结
- 【Javascript基础篇】—--原型对象(prototype)的三个常用方法
- JavaScript创建对象方法实例小结
- JavaScript下申明对象的几种方法小结
- JavaScript下申明对象的几种方法小结
- javascript最新深度克隆对象方法
- javascript检测对象中是否存在某个属性判断方法小结
- JavaScript对象转换成JSON字符串及深度克隆方法
- Javascript中获取对象的原型对象的方法小结
- javascript检测对象中是否存在某个属性判断方法小结
- javascript检测对象中是否存在某个属性判断方法小结
- 克隆JS对象的三个实用方法
- JavaScript的对象深度克隆方法