gpt4 book ai didi

javascript - 为什么该函数返回本地 JSON 变量的值而不是全局值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:28:35 26 4
gpt4 key购买 nike

我有一个全局 JSON 变量,我在其中存储了一些参数,然后每次运行该函数时,我都希望能够修改它们,但只能在该函数内部修改。

所以每次我运行该函数时,我都希望在本地变量中有一个全局变量的新副本。

问题是我将全局变量复制到函数中定义的局部变量,并且对局部变量进行了更改,但是下次运行该函数时,却得到了全局变量的完整副本,我我有一个我已经修改过的东西。

谢谢! :)

var test = {"name":"me"};
function bla() {
var t=test;
t.name="you";
t.age=55;
alert(test.name); // Returns "you" that have been set locally instead of "me" that was global value.
}
bla();

最佳答案

对象通过引用赋值,所以之后

var t=test;

变量 ttest 指的是同一个对象。您需要制作对象的副本以获得您正在寻找的行为。由于您使用的是 JSON,因此您可以只序列化原始对象,然后重新解析为一个新变量

var t = JSON.parse(JSON.stringify(test));

然后根据需要修改新对象

关于javascript - 为什么该函数返回本地 JSON 变量的值而不是全局值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719861/

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