console.log 的 "bug" ?
Contents
一般来说,我们会使用 console.log()
来打印某个对象,并且,两次打印之间,还会对这个对象进行修改,最后我们查看打印的结果发现,修改前的打印和修改后的打印,竟然是一样的?这样出乎意料的情况,让我们难以继续 console.log
的调试。
口说无凭,举个例子把:
我们可以看到,一共有两次打印,一次是打印原始信息,一次是打印我们修改后的信息,并且我们把属性 a
从 0
改成 1
,name
属性从 Tomek
改成 Not Tomek
但打印的时候,两次都是我们修改之后的值?
那,为什么会出现这一现象?
说明:
console
中打印出的对象,在你打印出他内容之前,是以引用的方式保存的。
知道了原因,对应的就知道该怎么处理这样的情况了:
- 打印一个从这个对象复制出来的对象。
- 使用资源面中的断点来调试
- 使用
JSON.stringify()
方法处理打印的结果 - 更多你可以想到的好方法~