JavaScript全局变量不正确,应该使用哪种替代解决方案?
我到处都读到了全局变量不好的地方,应该使用替代方法。特别是在Javascript中,我应该选择哪种解决方案。
我想一个函数,当喂两个参数(functionglobalVariables(Variable,Value)
)看起来,如果在本地数组存在变量,如果它的值设置为Value
,否则,Variable
和Value
附加。如果在不带参数(functionglobalVariables()
)的情况下调用该函数,它将返回数组。也许如果仅使用一个参数(functionglobalVariables(Variable)
)触发函数,则它将返回Variable
数组中的值。
你怎么看?我想听听您使用全局变量的替代解决方案和参数。
将如何使用 globalVariables();
function append(){ globalVariables("variable1","value1"); //globalVariables() would append variable1 to it's local array.
};
function retrieve(){
var localVariable1 = globalVariables("variable1"); //globalVariables() would return "value1".
};
function retrieveAll(){
var localVariable1 = globalVariables(); //globalVariables() would return the globalVariable()'s entire, local [persistently stored between calls] array.
};
function set(){
globalVariables("variable1","value2"); //globalVariables() would set variable1 to "value2".
};
在这种特定情况下,一个函数可能会在某个时间点设置一个变量,而另一个函数(可能在用户提交表单时)就需要获取该变量。因此,第一个函数无法将变量作为参数传递给后一个函数,因为永远不会从第一个函数调用它。
谢谢,谢谢您的帮助!
回答:
不鼓励在javascript中使用全局变量的主要原因是,在javascript中,所有代码都共享一个全局名称空间,而javascript也隐含了全局变量,即。在本地范围内未明确声明的变量将自动添加到全局名称空间。过于依赖全局变量可能导致同一页面上的各个脚本之间发生冲突。
减少全局变量的一种方法是使用YUI模块模式。基本思想是将所有代码包装在一个函数中,该函数返回一个对象,该对象包含需要在模块外部访问的函数,并将返回值分配给单个全局变量。
var FOO = (function() { var my_var = 10; //shared variable available only inside your module
function bar() { // this function not available outside your module
alert(my_var); // this function can access my_var
}
return {
a_func: function() {
alert(my_var); // this function can access my_var
},
b_func: function() {
alert(my_var); // this function can also access my_var
}
};
})();
现在要在其他模块中使用函数,请使用FOO.a_func()
。解决全局名称空间冲突的这种方法只需要更改的名称FOO
。
以上是 JavaScript全局变量不正确,应该使用哪种替代解决方案? 的全部内容, 来源链接: utcz.com/qa/418564.html