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

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

rush:js;"> 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

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

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

以上所述是小编给大家介绍的JS数据类型的值拷贝函数(深拷贝)。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...