如何将全局变量传递给多个文件中的多个函数

时间:2011-07-26 17:25:48

标签: javascript javascript-events global-variables

<script> 
var word = new Array(); word[1] = 'new'; word[2] = 'old';
</script> 

<script src="javascript/validator.js" type="text/javascript"></script>

而且,在validator.js中我们有:

function validate(number){ 
  alert(word[number]);
}

如何捕获变量值? 我总是得到一个错误,说变量不存在。

2 个答案:

答案 0 :(得分:1)

你几乎得到了它。

这是我管理多语言讯息的方式:

首先,我在页面顶部定义了数组;尽可能接近HEAD标签

<script type="text/javascript">
    var resx = {};
</script>

然后,我使用您使用的任何方法从数据库中获取值来填充数组。在这个例子中,我使用ASP.NET MVC。

<script type="text/javascript"> 
     resx["word1"] = '@Model.word1';    
     resx["word2"] = '@Model.word2';    
     //or you can fill it directly
     resx["word3"] = 'Name';
     resx["word4"] = 'Nombre';
</script>
<script src="javascript/validator.js" type="text/javascript"></script>

然后在js文件中使用您想要的方式:

validate(“word2”);
function validate(value){ 
   alert(resx[value]);
}

//Or:
alert(resx[“word3”]);

我希望这有帮助。

答案 1 :(得分:0)

首先,跨文件引用全局变量可能不是一个好主意。对于其他团队成员或维护人员来说,追踪它们可能会让人感到困惑。我建议总是将所有必要的值传递给函数。这准确记录了该功能所需的内容。试试这个,

<script src="javascript/validator.js" type="text/javascript"></script>
<script type="text/javascript"> 
var word = new Array('new', 'old');
validate(word, 0);
</script>

validator.js

function validate(w, n){ 
    alert(w[n]);
}