这可能是一个奇怪的问题,因为人们更常见的是如何避免使用全局变量。
来自Ruby世界,我在两个具体的例子中使用全局变量非常舒服:
常数。在Ruby中导入文件时,其所有常量都会自动提供给程序中的其他文件。
(这与第一个相关)包。当我在所需文件中加载Ruby Gem时,它也可以在我的其他文件中使用。
我已经开始使用SELECT products_id, options_id, group_concat( options_values_id )
FROM products_attributes pa
WHERE pa.options_id IN (SELECT distinct products_options_id FROM products_options WHERE products_options_name LIKE '%Velikost%' AND language_id =7)
GROUP BY products_id, options_id
,但我发现我在很多不同的文件中导入相同的模块。
我真的很想在Javascript中使用这些功能。我现在编写代码的方式,我使用函数方法并将所有常量作为参数传递。问题是我的代码对我的喜好太过冗长。
我真的不是在寻找一个简短的回答:没有"响应类型,这里。即使它太难了,我也很欣赏指向如何避免将常量作为参数传递给函数的方向。
答案 0 :(得分:1)
使用全局变量的一种方法可能是使用HTML5本地存储。
我的想法是,在你的全局变量中有一个对象,并在页面加载时将每个全局变量保存到它自己的本地存储位置。
所以你有一个存储了全局变量的对象:
var globals = {
GLOBAL1: "SomeString",
GLOBAL2: 400
}
然后onload
/或者如果你想在页面加载之前尽快调用它,你可以让一个函数运行你的全局并将值保存到本地存储
for(var key in globals) {
localStorage.setItem(key, globals[key]);
}
然后,稍后,当函数需要时,例如GLOBAL2
,您可以调用:
localStorage.getItem("GLOBAL2");