是否可以在jquery中动态声明变量作为全局变量?

时间:2014-09-25 06:55:53

标签: jquery

所以我想根据我的循环声明变量。所以我做了以下

 $.each(filter,function(key,value){
    var value;
   });

我的过滤器数组包含:

Geo_Name_date,Geo_Gender_date,Geo_Age_date,Geo_Ethnicity_date,Geo_Race_date,Geo_Language_date,Geo_Smoker_ind_date,Geo_Primarycare_provider_name_date  

当循环结束后我发出警报。变量应该警告undefined。但它给出了参考错误。任何建议或做错了什么?可以这样做吗?

2 个答案:

答案 0 :(得分:1)

要分配全局变量,请忽略var关键字:

$.each(filter, function(key, value) {
    globalValue = undefined;
});
alert(globalValue); // Will show undefined

答案 1 :(得分:1)

您最好在对象中创建属性而不是全局变量:

var values = {};
$.each(filter, function(key, value) {
  values[value] = undefined;
});

可以动态创建全局变量。您应该避免在全局范围内创建大量变量,但如果这确实是您所需要的,则可以使用eval方法为循环中的变量赋值而不声明它们。这将在全球范围内创建它们:

$.each(filter, function(key, value) {
  eval(value + '=undefined');
});