Javascript 在一个脚本文件中使用多个IIFE
我目前正在处理一个脚本文件,其中原始作者将多个IIFE封装在一个脚本文件中。后代IIFE是为特定用例编写的。例如,可能有一个用于搜索功能,另一个用于导航栏等:Javascript 在一个脚本文件中使用多个IIFE,javascript,jquery,function,scope,expression,Javascript,Jquery,Function,Scope,Expression,我目前正在处理一个脚本文件,其中原始作者将多个IIFE封装在一个脚本文件中。后代IIFE是为特定用例编写的。例如,可能有一个用于搜索功能,另一个用于导航栏等: (function($) { (function() { var $search = $(".search"); $search.on("focus", function() { // Do something }); }()); (function() { var $nav
(function($) {
(function() {
var $search = $(".search");
$search.on("focus", function() {
// Do something
});
}());
(function() {
var $nav = $(".nav"),
$navLink = $(".nav__link");
$navLink.on("click", function() {
// Do something
});
}());
// More IIFEs
}(jQuery));
这样做有什么好处吗?总的来说,为每个动作创建iife是多余的吗?开发人员所做的纯粹是风格方法。他将UI初始化的不同部分划分为所有需要执行的函数。要了解开发人员为何以这种方式将它们分开,而不是为每个方法命名并在此上下文中执行该方法的更多信息,您必须询问开发人员自己。您必须找到一个平衡点,但有时您希望在IIFE中封装一小部分代码,以明确变量在其他地方没有使用(如果有另一个代码同名,请确保没有冲突)。当然,每次大约500 LOC代码可以用300 LOC编写而不损失可读性,这意味着某些选择可能很差……好处是您有一个(某种程度上)模块化方法,但为了将HTTP请求保持在最低限度,需要一个连接文件。也就是说,我希望这是一个输出文件,而不是在开发代码中找到的文件。