JavaScript深拷贝Json

今天因为项目需要写了个Json格式的深拷贝(深度复制)。很简单,没有做其他的判断,代码如下:

function deepCopy(json){
	if(typeof json == 'number' || typeof json == 'string' || typeof json == 'boolean'){
		return json;
	}else if(typeof json == 'object'){
		if(json instanceof Array){
			var newArr = [], i, len = json.length;
			for(i = 0; i < len; i++){
				newArr[i] = arguments.callee(json[i]);
			}
			return newArr;
		}else{
			var newObj = {};
			for(var name in json){
				newObj[name] = arguments.callee(json[name]);
			}
			return newObj;
		}
	}
}

刚才还犯了个错误,在使用concat连接数组的时候,还以为concat返回了一个新的数组,其实没有。concat方法不能用来做深拷贝。

posted @ 2011-11-23 22:07  realwall  阅读(585)  评论(0编辑  收藏  举报