我正在创建一些想要从全局名称空间中隐藏的自定义对象和函数(包括限制其可访问性)。

如果我将其放置在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

09-17 16:38
查看更多