同java一样,数据的复制,不小心就是一个浅复制,莫名其妙的数据就被修改了,所以我们需要考虑深层复制的问题。这里提供一个深层复制的方法。
1.脚本
/** * 深层复制 */ cloneObject = function(obj) { if(typeof obj === "object") { if(Array.isArray(obj)) { var newArr = []; for(var i = 0; i < obj.length; i++) newArr.push(obj[i]); return newArr; } else { var newObj = {}; for(var key in obj) { newObj[key] = this.cloneObject(obj[key]); } return newObj; } } else { return obj; } };
2.使用
var data = cloneObject(map.get(index));
这样获取的就是一个完全隔离的全新的数据。