下面我给出一种深层次拷贝的方法:
var cloneObj = function(obj){ var str, newobj = obj.constructor === Array ? [] : {}; if(typeof obj !== 'object'&& typeof obj !=='function'){ return; }else { for(var i in obj){ newobj[i] = typeof obj[i] === 'object' ? cloneObj(obj[i]) : obj[i]; } } return newobj; }; //克隆 var obj2=clone(obj);
当我想更改里面的某几个参数时,我可以使用以下方法
obj2.title.text = "XXX";
用extend()方法:拓展就是可以将一个或者多个拓展到某个对象属性上
形成一个并集的效果,这里如果是讲空对象,拓展到某个对象就相当于克隆
$.extend(true,obj,{});
而取并集效果的代码如下
obj2 = $.extend(true,obj,obj2);
当要覆盖某个参数时,可以选择和clone()相同的覆盖方法,也可以选择在
obj2 = $.extend(true,obj,obj2);
前面加上如下代码:
var obj2 = { title: { text: 'XXX' }, ... }