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

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

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

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

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

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

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中如何递归的方式来进行复制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2022-03-17 21:16:42
收藏
分享
海报
0 条评论
30
上一篇:jQuery中如何将$引用的对象映射回原始的对象 下一篇:localStorage和sessionStorage对象怎么使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码