哪个更好:
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
事件需要使用foo
和fnFoo
。
答案 0 :(得分:4)
如果只有ready
事件需要它,请将其放入ready
。这就是封装的全部要点。尽可能限制对变量的访问,以减少代码中的错误。如果您以后偶然意外地宣布了另一个foo
或fnFoo
,会发生什么?
不仅如此,它还使您的代码更容易理解。这意味着您确切地知道每个变量的用途和位置。
答案 1 :(得分:1)
绝对使用后一种情况,因此1. vars与使用它们的代码分组,以及2.您不会使用您的vars污染全局范围。
答案 2 :(得分:0)
您只需等待文档准备就绪,以便jQuery
知道DOM
已完全设置,从而可以访问表单字段和其他DOM
个对象。因此,除非您的function
需要访问DOM
个元素,否则我会在var
块之前声明页面范围functions
和$(document).ready(...
,并且你知道他们的工作将代码移到一个单独的脚本文件中,特别是如果function
将在你的网络的其他部分重用。