JavaScript中如何递归的方式来进行复制
JavaScript中如何递归的方式来进行复制
这篇文章主要讲解了“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中如何递归的方式来进行复制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
推荐阅读
-
WebStorm 与 VS Code 对比:JavaScript 开发该如何选择 IDE?
-
WebStorm 与 VS Code 对比:JavaScript 开发工具选型分析
-
JavaScript闭包用多会造成内存泄露吗
JavaScript闭包用多会造成内存泄露吗今天小编给大家分享一下...
-
javascript中文乱码如何解决
javascript中文乱码如何解决本篇内容介绍了“javascr...
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...