记一次浏览器 console 的小bug

本来是试一下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

你可能感兴趣的:(记一次浏览器 console 的小bug)