莫大人

js中的深层复制

同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));

这样获取的就是一个完全隔离的全新的数据。

 

posted on 2017-01-11 17:15  莫大人  阅读(193)  评论(0编辑  收藏  举报

导航