本来是试一下jQuery的 $.extend() 的方法,结果意外除了个小bug .....
var obj1 = {
John: {age: 21},
hobbies:{
reading: 'novels',
sports: 'hike'
}
};
var obj2 = {
John: {age: 22},
hobbies:{
soprts: 'play-badminton'
},
school : 'none'
};
$.extend(true,obj1,obj2);
console.log(obj1); // {John: {age: 40}, {reading: "novels", sports: "hike", soprts: "play-badminton"}, school: "none"} ; 明明我是在后面才修改的age ,为什么这里就改变了 ??
obj1.John.age = 40;
console.log(obj1.John.age); // 40
console.log(obj2.John.age); // 22
由于第一次打印 obj1 的时候(这时我还没有修改 age的值),age竟然变成了 40
实在想不通,于是就有了以下尝试 :
console.log(JSON.stringify(obj1)); // {"John":{"age":22},"hobbies":{"reading":"novels","sports":"hike","soprts":"play-badminton"},"school":"none"}
obj1.John.age = 40;
console.log(obj1.John.age); // 40
console.log(obj2.John.age); // 22