0

我正在使用 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.documentorjQuery.document吗?如果两者都错了,如何正确引用?
4

1 回答 1

0

显式传入窗口可以吗?

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

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

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

于 2013-03-16T15:13:24.733 回答