0

我在 chrome 的控制台中发现了这种奇怪的行为,想知道它是否是故意的,如果是,它的目的是什么。

一个例子来证明:

行为取决于您是否查看此对象

让我们从您期望的行为开始。从上图开始,单击“对象”行旁边的箭头将其展开。然后,您可以将其保持打开或重新关闭。重要的是你展开它一次。现在继续:

观察到,所以没有改变

如您所见,我们更改了对象键之一的值,但在其上方打印出的对象不受我们更改的影响,正如预期的那样。

现在清除您的控制台并重新开始实验。键入相同的行以创建对象“o”并用循环填充其属性。但是,这一次不要关键线处展开对象。相反,直接继续执行下一个更改属性“x7”值的命令。只有在这样做之后,您现在才能返回并在关键线处展开对象。一个不错的惊喜等着你:

未来改变了过去

未来改变了过去!

4

1 回答 1

4

这里没有什么神秘之处。在扩展时检索属性。在您更改下面的属性,您扩展了上面对对象的引用。

于 2013-08-30T05:08:46.977 回答