嘿嘿,这个(打印出来的对象,与预期不符)真的会让你大吃一惊,并且使得我们基于 console.log
的调试过程变得扑朔迷离,或者失败。
在
console
中打印出的对象,在打印之前,都是以引用的形式保存的(快照vs引用)。
什么意思呢?例如:你 (在代码中) 打印了一个对象,然后 (在代码中) 修改了它,最后将它打印出来 - 当我们在 console
中查看时,会看到第一条打印的记录 (进行修改前的记录) 和第二条打印的记录 (被修改之后的记录) 的值是一样的!
这样描述之后,如果你仍然不好理解,别担心,下面的视频中的这个流程会让你变得清晰:
现在想象一下,当你想要弄清楚一个对象在何时被修改的时候,如果发生了这样的情况,怎么办呢?怎么处理这样的情况呢?
你可以打印从这个对象复制出来的对象,或者…在正式的调试中使用让我们可以放心的断点或者是资源面板来替代,在后续的文章中,我们会继续讨论这个问题。