我正在创建一些想要从全局名称空间中隐藏的自定义对象和函数(包括限制其可访问性)。
如果我将其放置在document.ready函数中,它将与放置在Closure中具有相同的效果,还是需要在document.ready声明中为jquery引用添加别名,以确保我的自定义代码不在全局命名空间之内?
选项1.准备普通文件
$(document).ready(function()
//do custom stuff
选项2:关闭内部文件准备就绪
$(document).ready(function(){
(function($) {
//do custom stuff
})(jQuery);
选项3:别名文档准备中的jQuery参考
jquery(document).ready(function($) {
//do custom stuff
首选的选择是什么?谢谢
最佳答案
如果在任何函数中声明变量,则它们仅在该函数中可见。
另外,为确保您在范围内具有正确的$
,我将选择选项3(但将功能名称从jquery
更改为jQuery
)。选项1和2已经假定$
是正确的别名,但是即使外部范围中的$
与jQuery
不同(例如,如果调用了jQuery.noConflict()
或另一个库,像Prototype.js等加载),但使$
在您的jQuery
内部范围中始终表示//do custom stuff
。