修改变量并显示它( 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/