修改变量并显示它( live demo here )时,Firefox 出现奇怪的行为:

var MyModule = ( function() {
  var currentPosition = {x : 1, y : 2, z : 3};

  function changePosition() { currentPosition.x = 17; };

  return { changePosition : changePosition,
           currentPosition : currentPosition };
} )();

console.log(MyModule.currentPosition);  // 17, 2, 3 instead of 1, 2, 3 !!
MyModule.changePosition();
console.log(MyModule.currentPosition);  // 17, 2, 3

为什么会这样? (为什么 current.Position 在修改为 17 之前给出 17 ?)

更一般地说,如何在显示模块模式中获取/设置变量?

Firefox 截图:

最佳答案

我猜你是一个接一个地运行了 3 行,当你检查第一个打印的行时,它旁边有一个小 i。 Chrome 将报告对象的最新属性,而不是它们在打印时的值,因此如果您只是打印 currentPosition 而不是运行 changePosition(),那么您将看到 1,2,3。

关于javascript - JS 控制台显示错误结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27418196/

10-12 00:57