JavaScript中如何递归的方式来进行复制

发布时间:2022-03-17 16:25:06 作者:iii
来源:亿速云 阅读:183

这篇文章主要讲解了“JavaScript中如何递归的方式来进行复制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中如何递归的方式来进行复制”吧!

1.递归的方式来进行复制

//定义一个稍微复杂的对象

var obj = {

    name: [{

        name: 'lisi'

    },{

        name: 'zhang',

        age: [{

            name: 'liu'

        }]

    }],

    age: '90'

}

function deepClone(obj) {

    //定义一个变量来存储结果

    var result;

    //判断传递的类型

    if(obj === null || typeof obj !== 'object') return obj;

    //处理日期对象

    if(obj instanceof Date){

       result = new Date();

       result.setTime(obj.getTime());

       return result;

    }

    //处理数组

    if(obj instanceof Array) {

       result = [];

       for(var i = 0; i < obj.length; i++){

          result[i] = arguments.call(obj[i])

       }

       return result;

    }

    //处理对象

    if(obj instanceof Object) {

        result = {};

        for(var key in obj) {

           if(obj.hasOwnProperty(key) result[key] = arguments.callee(obj[key])

        }

        return result;

    }

}

2.使用ES5中提供的新的API

var obj = {

    name: [{

        name: 'lisi'

    },{

        name: 'zhang',

        age: [{

            name: 'liu'

        }]

    }],

    age: '90'

}

function deepClone(obj) {

   //定义一个变量来存储结果

    var result;

    //判断传递的类型

    if(obj === null || typeof obj !== 'object') return obj;

    //处理日期对象

    if(obj instanceof Date){

       result = new Date();

       result.setTime(obj.getTime());

       return result;

    }

    if(typeof obj === 'object') {

       result = JSON.parse(JSON.stringify(obj);

       return result;

    }

}

感谢各位的阅读,以上就是“JavaScript中如何递归的方式来进行复制”的内容了,经过本文的学习后,相信大家对JavaScript中如何递归的方式来进行复制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. JavaScript中的递归
  2. JavaScript中对象的浅复制和深复制

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript

上一篇:localStorage和sessionStorage对象怎么使用

下一篇:post与jqXHR对象怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》