目前我将所有JavaScript函数都放在一个函数中,这样我就不会污染全局命名空间。
e.g。
var App = function() {
function a() {
}
return {};
}();
现在我想使用jQuery,所以我希望将其包含在以下内容中:
(function (window, document, $) {
...
}(window, document, jQuery));
我已经尝试在jQuery函数中包装var App = function(){},但是当我在App上有AJAX设置属性时会出现问题。有什么想法吗?
答案 0 :(得分:1)
您可以直接将window
,document
和jQuery
直接传递到应用中,而不是使用单独的匿名函数:
var App = function(window, document, $) {
function a() {
}
}(window, document, jQuery);
或者,您可以在全局命名空间中声明App
,但在jQuery闭包中定义它,如下所示:
var App = null;
(function (window, document, $) {
App = function() {
function a() {
}
};
}(window, document, jQuery));
请注意,在这两个示例中,我删除了return {}
,而在第二个示例中,我将该函数设置为非自调用。结构的那部分看起来像复制和粘贴,并且是不必要的。
答案 1 :(得分:0)
这个怎么样:
var App = function(window, document, $) {
function a() {
}
return {};
}(window, document, jQuery);