请教:有关 对象复制的问题?

litao_fox 2017-05-10 05:52:22
我的目标是除了HTML元素,可以复制任何对象。

网上很多用jQuery.extend方法来实现,结果很坑爹!这玩意,碰到字符串、数组就乱成一团!

用JSON来处理:var cloneObj = JSON.parse(JSON.stringify(obj));好像也有问题。
最后弄了个笨办法遍历:

CopyObj: function(obj){
var typ=Object.prototype.toString.call(obj);
if(typ=='[object String]'){
var Str='';
Str +=obj;
return Str;
};
if(typ=='[object Array]'){
var sz=new Array;
for(var i=0;i<obj.length;i++){
sz[i]=MyJS.CopyObj(obj[i]);
};
return sz;
};
if(typ=='[object Object]'){
var o=new Object;
for (var n in obj) {
o[n] = CopyObj(obj[n]);
};
return o;
};
return obj;
},
...全文
156 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用JSON来处理:var cloneObj = JSON.parse(JSON.stringify(obj));好像也有问题。 问题是你需要设置正确的编码格式
cn00439805 2017-05-10
  • 打赏
  • 举报
回复

var CopyObj = function(source) { 
	var result={};
	for (var key in source) {
		result[key] = typeof source[key]==="object"? CopyObj(source[key]): source[key];
	} 
	return result; 
}

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧