当输出对象的时候,实际上是给console传递一个对象的索引(或者叫指针)。当对象被删除不会影响输出,因为删除对象的时候只是去掉了对象索引,并不影响输出结果。但是如果对象中包含子对象,对子对象的操作会实时体现在操作前的输出中。
也就是:
obj = {arr:[1,2,3]};
console.log(obj);
obj = null;
正常输出obj的结果
obj = {arr:[1,2,3]};
console.log(obj, obj.arr);
obj.arr = null;
输出结果变为obj的arr为空, 但obj.arr输出是正常的
console保存的是对象索引,并不是在输出时马上打印,当你展开时就是打印的时刻,此时如果有变化,离你的输出代码可能已经很遥远了,有些变化很快的对象,注意要打印值而不是对象。