gpt4 book ai didi

javascript - 我应该使用全局变量吗?如果不应该,用什么代替? (JavaScript)

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

我正在处理几个需要来回传递变量的函数。我应该改用全局变量还是其他方法?我也希望能举一两个关于如何实现它的例子。

谢谢,艾略特博纳维尔

我的函数的伪代码:

function GetXML() {//this would be a function which reads in an XML file.
//Preferably it would also generate or set an object to hold the XML data.
}

function UseXMLData() { //I would use the XML data here.
}

function UseXMLDataHereAsWell() { //And here as well.
}

最佳答案

Global variables正如您可能猜到的那样,它们被认为是不好的。页面上的任何其他代码都可以修改它们——通常是因为另一个程序员不小心选择了相同的名称。您可以尝试通过选择非常奇怪的名称来减轻这种影响,但随后您会得到一堆非常奇怪的名称。

有很多方法可以减少您在 JavaScript 中创建的全局变量的数量。一种方法是将所有变量存储在一个对象下 - 这就是 jQuery 所做的(技术上 jQuery 使用两个 - $ 和 jQuery。)

如果您知道自己在做什么,通常不必创建任何全局变量 - 只需将所有代码包装在您立即调用的函数中即可。

坏例子 - 不必要地污染了全局命名空间:

var appleCount = 0;

function addApple() {
appleCount = appleCount + 1;
}

function howManyApples() {
return appleCount;
}

addApple();
alert(howManyApples());

更好的例子——只创建一个全局变量:

var appleCounter = {
count: 0,
add: function() {
this.count = this.count + 1;
},
howMany: function() {
return this.count;
}
};

appleCounter.add();
alert(appleCounter.howMany());

最佳示例 - 不创建全局变量:

(function(){
var appleCounter = {
count: 0,
add: function() {
this.count = this.count + 1;
},
howMany: function() {
return this.count;
}
};

appleCounter.add();
alert(appleCounter.howMany());
})();

关于javascript - 我应该使用全局变量吗?如果不应该,用什么代替? (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4190792/

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