有人可以解释下面代码的作用,尤其是第1点和第2点:
1)
(function (carWeb) {
})(carWeb || (carWeb = {}));
更新 2)为什么下面的函数在IIFE中声明,而GridView使用了四次
function GridView() {
}
// usercontrols.gridview.js
var carWeb;
(function (carWeb) {
carWeb.GridView = (function () {
function GridView() {
}
GridView.init = function (gridSelector, threeGridButtonSelector) {
GridView.gridSelector = gridSelector;
threeGridButtonSelector.on("click", this.setThree);
};
return GridView;
})();
})(carWeb || (carWeb = {}));
carWeb.GridView.init($("#top.items"), $("#grid-view-grid")));
更新
任何链接都将受到赞赏。
为什么这个问题被搁置? 请投票重新开启帖子,并投票支持
答案 0 :(得分:1)
它将GridView子模块添加到carWeb模块,而
(carWeb = {})
语句定义它)var
语句之前定义的,所以这不是必需的)这种方法很常见,因为如果您在不同文件中定义了许多子模块,则文件的顺序并不重要,您可以根据需要添加或删除文件(即子模块)。
另一种不那么冗长的写作方式(我通常的解决方案)应该是:
var carWeb = carWeb || {}
(function(){
carWeb.GridView = ...
})();