gpt4 book ai didi

javascript - 数组值未被方法更改

转载 作者:行者123 更新时间:2023-11-28 12:02:55 26 4
gpt4 key购买 nike

不是 js 专家,所以这可能是一个愚蠢的问题,但是......

为什么日志显示数组已经改变?我期望数组仍然是 [0,0],因为该方法是在 console.log 之后调用的。另外,如果我尝试像这样替换整个数组:

this.my_array = [1,0];

日志仍会显示 [0,0],这对我来说更有意义。这是怎么回事?

function Y() {        
this.my_array = [0,0];
this.changeIt = function() {
this.my_array[0] = 1;
};
}

var z = new Y;
console.log(z.my_array);
z.changeIt();

最佳答案

在某些浏览器(例如 Chrome)中,console.log 显示数组的实时交互式显示,而不是时间点快照。因此,如果您在运行后查看控制台,就会发现它已因更改而更新。当您在控制台面板中交互使用 console.log 时,Chrome 执行的操作与在脚本中使用它时的操作也略有不同。

如果您显示字符串,您将看到您所期望的内容:

var z = new Y;
console.log(z.my_array.join(", "));
z.changeIt();

这显示了您期望的时间点快照。

关于javascript - 数组值未被方法更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13231897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com