全局变量导致错误

时间:2012-05-31 15:58:49

标签: javascript internet-explorer-8

尝试在IE8中声明一个全局变量时,会抛出以下错误:

SCRIPT438: Object doesn't support this property or method
Script.js, line 2 character 5

这是一个精简版本的代码,会导致同样的错误。

$(document).ready(function () {
    GlobalVar = {};
}

有人知道IE8及以前的原因会导致错误,而只是声明一个全局变量吗?

感谢您的帮助:)

4 个答案:

答案 0 :(得分:0)

确实

var GlobalVar;

$(document).ready(function () {
    GlobalVar = {};
});

工作?

答案 1 :(得分:0)

在document.ready上,global var被初始化为10。它在该脚本内的任何函数内全局访问..

<script>

    var GlobalVar;

    $(document).ready(function () {
        GlobalVar = 10;
        temp();
    });

    function temp()
    {
      var a = GlobalVar;

      alert(a); //gives you that 10 


    }

    </script>

答案 2 :(得分:0)

我只是添加一个听起来类似的问题。

确保未从其他脚本设置变量。然后,您将在先前初始化的变量与您的调用“GlobalVar = {}”之间发生冲突。

通过在前面添加var,确保GlobalVar是jQuery ready调用的本地调用。 var GlobalVar = {};

答案 3 :(得分:0)

隐式全局变量是一种糟糕的编码习惯。你应该做

window.GlobalVar

代替。