我正在使用js/jQuery,试图创建一个真正的克隆-目前我正在使用jQuery来实现。我期望在多层对象中,甚至子对象也应该被深度克隆,但这似乎并不是事实。下面是我的测试代码和输出,这让我相信jQuery的深度克隆并没有实际克隆所有子对象。
有人编写过真正的深度克隆函数吗?或者有没有办法使jQuery按照预期工作?
代码:
有人编写过真正的深度克隆函数吗?或者有没有办法使jQuery按照预期工作?
代码:
function deepClone (obj) {
return $.extend(true, {}, obj);
};
var orig = {};
orig.companyData = {};
orig.companyData.TEST= 1;
var deep1 = deepClone(orig);
deep1.companyData.TEST= 0;
var deep2 = deepClone(orig);
console.log("orig: " + orig.companyData.TEST);
console.log("deep1: " + deep1.companyData.TEST);
console.log("deep2: " + deep2.companyData.TEST);
控制台输出:
注意: 我期望得到1、0、1
0
0
0