当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 详解JS数据类型的值拷贝函数(深拷贝)

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

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

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数据类型的值拷贝函数(深拷贝),希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网