javascript全局变量可见性

时间:2009-09-30 15:34:23

标签: javascript

我在javascript中使用了一个全局变量,在任何函数之外的脚本标记中声明:

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

稍后在javascript方法中我正常使用变量。

temp=prov_status_dict[current_as_id];

我在Opera上遇到了问题,即在Firefox上它有效。这就是opera的错误控制台报告的内容:

JavaScript - http://localhost:8000/input/
Event thread: click
Error:
name: ReferenceError
message: Statement on line 62: Undefined variable: prov_status_dict
stacktrace: n/a; see  opera:config#UserPrefs|Exceptions Have Stacktrace

我注意到问题通常在于全局变量。我尝试将一些移动到隐藏字段中,但在下次使用全局变量时会弹出相同的错误。

帮助?

2 个答案:

答案 0 :(得分:5)

我通常通过window对象访问我的全局变量,这样我总是有一个参考点

window.MyVariables = {};
window.MyVariables.prov_status_dict = {};

尝试一下,它可能会解决您的问题。

答案 1 :(得分:0)

尽量避免使用全局变量,请参阅http://yuiblog.com/blog/2006/06/01/global-domination