克隆JS对象的三个实用方法
来源:互联网 发布:使用数组公式计算乘积 编辑:程序博客网 时间:2024/05/18 02:29
克隆JS对象的三个实用方法
方法一
- 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;
- }
0 0
- 克隆JS对象的三个实用方法
- 克隆JS对象的三个实用方法
- 克隆JS对象的三个实用方法
- JS克隆对象方法
- js对象的克隆
- JS 对象克隆方法总结
- js clone对象的三个方法
- js克隆对象、数组的常用方法【clone】
- js克隆对象、数组的常用方法【clone】
- JS 对象合并与克隆方法的分类与比较
- js对象的深度克隆!
- js对象的深度克隆
- js对象的深度克隆
- 实用的js方法
- JS中 对象的深度克隆
- js对象克隆
- JS对象之克隆
- js对象深度克隆
- 搭建基于Open vSwitch的VxLAN隧道实验
- CMM走上舞台
- 类加载器和代理
- ios8以后图标尺寸和iOS8之后的注意事项(持续更新...)
- 网络编程与多线程的应用--基于socket udp编写一个简单聊天程序
- 克隆JS对象的三个实用方法
- 各种算法-引用计数(reference counting)
- Hibernate @OneToOne -- 2
- WCF---“无法从http://XXX/XXX.svc?wsdl获取元数据”错误的解决方法
- iOS中Category的原理
- codeforces 498 b Name That Tune
- Mule ESB的component(一)——概念介绍
- 多看事实论述,还是总结归纳?
- GUI