详解JS数据类型的值拷贝函数(深拷贝)


Posted in Javascript onJuly 13, 2017

废话不多说了,直接给大家贴代码了,具体代码如下所示:

function mottoClone (obj) {
 if (obj === null || typeof obj !== 'object') return obj;
 if (obj instanceof Boolean) return new Boolean(obj.valueOf());
 if (obj instanceof Number) return new Number(obj.valueOf());
 if (obj instanceof String) return new String(obj.valueOf());
 if (obj instanceof RegExp) return new RegExp(obj.valueOf());
 if (obj instanceof Date) return new Date(obj.valueOf());
 var cpObj = obj instanceof Array ? [] : {};
 for (var key in obj) cpObj[key] = myClone(obj[key]);
 return cpObj;
}

支持的数据类型或格式有:Boolean,Number,String,RegExp,Date,Function,Array,JSON

支持深拷贝(循环迭代),如:

var obj = {
 id: 1,
 name: 'xxx',
 sayName: function () {
  console.log('my name is' + this.name);
 },
 childs: [
  {}, 
  {}, 
  ...
 ],
 opts: {
  xxx: [],
  ...
 },
 ...
};
var newObj = mottoClone(obj);

以上所述是小编给大家介绍的JS数据类型的值拷贝函数(深拷贝),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Discuz! 6.1_jQuery兼容问题
Sep 23 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
JavaScript获得页面base标签中url的方法
Apr 03 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
jQuery Validate初步体验(二)
Dec 12 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
jquery实时获取时间的简单实例
Jan 26 Javascript
canvas的神奇用法
Feb 03 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
详解jQuery中的easyui
Sep 02 jQuery
JS实现获取数组中最大值或最小值功能示例
Mar 02 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
Mar 27 #Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 #Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 #jQuery
通过命令行生成vue项目框架的方法
Jul 12 #Javascript
微信小程序实现点击返回顶层的方法
Jul 12 #Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 #Javascript
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
You might like
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
2017/07/19 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
vue自定义指令用法经典实例小结
2019/03/16 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python中的模块和包概念介绍
2015/04/13 Python
python回调函数用法实例分析
2015/05/09 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
解决Django中多条件查询的问题
2019/07/18 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
python能否java成为主流语言吗
2020/06/22 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
迟到检讨书大全
2014/01/25 职场文书
校园之声广播稿
2015/08/18 职场文书
python使用shell脚本创建kafka连接器
2022/04/29 Python