JavaScript - 在哪里声明变量和定义函数?

时间:2011-09-15 02:59:19

标签: javascript

哪个更好:

var foo = 0,
    fnFoo = function (bar)
    {
        "use strict";
        // Do stuff
    };

$(document).ready(function ()
{
    "use strict";
    fnFoo(foo);
});

OR

$(document).ready(function ()
{
    "use strict";

    var foo = 0,
        fnFoo = function (bar)
        {
            "use strict";
            // Do stuff
        };

    fnFoo(foo);
});

不同之处在于变量/函数声明的位置。在这种情况下,假设只有ready事件需要使用foofnFoo

3 个答案:

答案 0 :(得分:4)

如果只有ready事件需要它,请将其放入ready。这就是封装的全部要点。尽可能限制对变量的访问,以减少代码中的错误。如果您以后偶然意外地宣布了另一个foofnFoo,会发生什么?

不仅如此,它还使您的代码更容易理解。这意味着您确切地知道每个变量的用途和位置。

答案 1 :(得分:1)

绝对使用后一种情况,因此1. vars与使用它们的代码分组,以及2.您不会使用您的vars污染全局范围。

答案 2 :(得分:0)

您只需等待文档准备就绪,以便jQuery知道DOM已完全设置,从而可以访问表单字段和其他DOM个对象。因此,除非您的function需要访问DOM个元素,否则我会在var块之前声明页面范围functions$(document).ready(...,并且你知道他们的工作将代码移到一个单独的脚本文件中,特别是如果function将在你的网络的其他部分重用。