gpt4 book ai didi

Javascript:使用全局变量是否合适?

转载 作者:行者123 更新时间:2023-11-30 17:30:18 28 4
gpt4 key购买 nike

所以我有多个不同的函数 - 我们称它们为函数 A、B、C、...、Z。我们称函数 A 为“开始状态”,而函数 Z 为“结束状态”。

我还有一个数组,只有函数 A 使用它来选择一个索引以传递给后面的函数以供使用。所有后面的函数都不使用数组,只使用索引。

但是,在函数 Z 之后,它需要从数组中删除该索引并返回给 A。A 将再次从同一个数组中选择一个索引,但这次数组中的索引少了一个。

没有全局变量,这意味着我必须将数组作为参数从 A 传递到 Z,即使 B 到 Y 甚至不会触及数组。

代码示例:

function A() {
var arr = [4, 1, 2, 5]; // Some array
var ind = arr[0]; // Some index

// Pass index and array to B
B(ind, arr);
}

function B(index, array) {
// B will do some stuff with index
C(index, array);
}

function C(index, array) {
// C will do some stuff with index
D(index, array);
}

// ...
// Repeat until Z
// ...

function Z(index, array) {
// Remove it
array.splice(0,1);

// Go back to A() again
A();
}

这看起来很俗气,对我来说做那样的事情没有多大意义。在这种情况下只使用全局变量是否合适?如果不是,有什么更好的选择可以在不传递不必要的参数的情况下完成上述任务?

最佳答案

只需创建一个闭包:

(function() {
var pseudoGlobalArray = [];

function A() {
pseudoGlobalArray[0] = 42; // OK
}

function B() {
pseudoGlobalArray[1] = 43; // OK
}
}());

pseudoGlobalArray[2] = 44; // don't do this, array not even visible here

关于Javascript:使用全局变量是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23235741/

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