这个JavaScript样板文件中是否有任何catch / gotcha?

时间:2013-03-16 14:31:53

标签: javascript jquery

我正在使用jQuery开发一个网站,并将代码组织成几个脚本文件。

如果我没有弄错,最好的做法是组织你的代码,比如这个样板(创建一个独立的范围并正确设置undefined值):

(function($, undefined) {
    $(document).ready(function() {
        // code here
    });
})(jQuery);

在我的情况下,我还将依赖某些服务器端脚本输出的一些外部配置,比如它存储为全局变量site_config。所以目前我的脚本样板是:

(function(window, undefined) {
    var document = window.document;
    var $ = window.jQuery;
    var config = window.site_config;

    // equivalent to $(document).ready(function() {...
    $(function() {
        // code here using `config`
    });
})(window);

所以我的问题是:这个样板中是否有任何捕捉/陷阱?

具体做法是:

  1. 可以明确传递window吗? (假设包装函数在全局范围内)
  2. 我应该使用window.document还是jQuery.document?如果两者都错了,如何正确引用?

1 个答案:

答案 0 :(得分:0)

  

可以明确传入窗口吗?

没关系,但没必要(见Why do I pass the window object in to the module pattern?)。

  

我应该使用window.document还是jQuery.document?如果两者都错了,如何正确引用?

jQuery.document错误,jQuery函数对象没有这样的属性。但是,只使用document就可以了,因为它是一个全局且不可写的变量。