Javascript JS控制台显示错误结果
在修改变量并显示它()时,Firefox有一种奇怪的行为: 为什么会发生这种情况?(为什么Javascript JS控制台显示错误结果,javascript,firefox,module-pattern,revealing-module-pattern,Javascript,Firefox,Module Pattern,Revealing Module Pattern,在修改变量并显示它()时,Firefox有一种奇怪的行为: 为什么会发生这种情况?(为什么当前位置在修改为17之前给出17?) 更一般地说,如何在显示模块模式中获取/设置变量? Firefox的屏幕截图: 看起来Firefox持有对该对象的引用,当您检查它时,您会看到它在这两种情况下的修改状态。 下次,您可以在该行上设置断点,并在那里查看变量。根据我的经验,这更可靠。 当您将日志语句更改为记录值而不是对象时,它将始终按照预期工作 console.log(MyModule.currentPosi
当前位置在修改为17
之前给出17
?)
更一般地说,如何在显示模块模式中获取/设置变量?
Firefox的屏幕截图:
看起来Firefox持有对该对象的引用,当您检查它时,您会看到它在这两种情况下的修改状态。
下次,您可以在该行上设置断点,并在那里查看变量。根据我的经验,这更可靠。
当您将日志语句更改为记录值而不是对象时,它将始终按照预期工作
console.log(MyModule.currentPosition.x);
MyModule.changePosition();
console.log(MyModule.currentPosition.x);
关于模块模式。您已经按照应该的方式实现了它:)
是我的第一个javascript模式源。-> 我猜您是一行接一行地运行了3行,当您检查第一行打印内容时,它旁边有一点I
。Chrome将报告对象的最新属性,而不是打印时的属性值,因此如果您只打印currentPosition而不运行changePosition(),则您将看到1,2,3。当我在控制台中执行上述代码时,它会显示正确的结果。无法重新处理您的问题,代码按预期工作-第一次输出(1,2,3)第二次-(17,2,3)@A1rPun在问题中添加了一个屏幕截图(在Firefox上制作)我对Firefox没有一点I
。如果发生这种情况,我如何信任JS控制台/哦,是的,小我是一个镀铬的东西。如果单独打印基本体,则会打印其值;如果打印对象的克隆,则会在初始化时获得值
console.log(MyModule.currentPosition.x);
MyModule.changePosition();
console.log(MyModule.currentPosition.x);