全局变量' undefined'在jQuery中

时间:2014-05-08 21:45:58

标签: jquery

在以下代码中

<script>
    var vars = {}
    $("document").ready(function() {
        vars.var1 = 2;
        alert(vars.var1);    //shows 2;
    });
    alert(vars.var1);        //shows undefined
</script>

为什么vars.var1未定义?

4 个答案:

答案 0 :(得分:4)

$(document).ready()中的代码在加载DOM之后才会运行。 alert会立即执行。

答案 1 :(得分:3)

首先,

$("document").ready应为$(document).ready(无引号)

其次,

代码alert(vars.var1)$(document).ready()函数内的代码之前执行。

由于vars仅在var1函数中分配了$(document).ready()属性(在alert执行后发生),vars.var1将为{{} 1}}当你undefined;

答案 2 :(得分:2)

因为$("document").ready中定义的函数仅在文档完全加载时执行。也许this也有帮助。

答案 3 :(得分:0)

在读取文档之前,您没有设置值。当你打电话给警报(vars.var1);并且它返回undefined你实际上是在设置之前调用它,因为该代码在文档完全就绪之前执行。