gpt4 book ai didi

Javascript 更新函数内的全局对象

转载 作者:行者123 更新时间:2023-12-03 03:36:49 25 4
gpt4 key购买 nike

我看到我的全局变量(一个对象)正在函数内部被修改。

下面是我创建的示例:

var globalVarForTest = ["dfbsdfbsdfb", "sfgb", "gtsgt", "ttt"];

function testingError() {

console.log("BEFORE")
console.log(globalVarForTest);
for (var i = 0; i < globalVarForTest.length; i++) {
console.log(globalVarForTest[i]);
}


//Modifying Local Variable
var localVarforTest = globalVarForTest;
for (var i = 0; i < localVarforTest.length; i++) {
localVarforTest[i] = localVarforTest[i].length;
}




console.log("AFTER")
console.log(globalVarForTest);
for (var i = 0; i < globalVarForTest.length; i++) {
console.log(globalVarForTest[i]);
}

}

testingError();

该函数打印全局变量的 BEFORE 和 AFTER 不同值。

如何将函数内部的局部变量设置为等于全局数组,使得全局数组在函数中不被修改?

最佳答案

你必须clone it without reference .

var globalVarForTest = ["dfbsdfbsdfb","sfgb","gtsgt","ttt"];

var temp = globalVarForTest.slice(0);

console.log(temp);
temp.push('temp');
console.log(temp);
console.log(globalVarForTest);

关于Javascript 更新函数内的全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45818440/

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