javascript - 使用命名立即调用函数表达式 (IIFE) 而不是注释

标签 javascript comments maintainability iife

在 JS 代码中使用命名 IIFE 来描述和分组相关代码的优缺点是什么?

我一直在使用这种“模式”为我的更多过程代码提供结构,这些代码只在一个地方执行。


例子

(function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
}());

我发现这比两者更可取:

// hide Stuff on Instantiaton
$('oneThing').hide().removeClass();
$('#somethign_else').slideUp();
$('.foo').fadeOut();

随着时间的推移,注释可能会与代码分离,并且注释适用于哪一行并不是很明显

和:

function hideStuffOnInstantiaton(){
    $('oneThing').hide().removeClass();
    $('#somethign_else').slideUp();
    $('.foo').fadeOut();
};

hideStuffOnInstantiaton();

因为如果它只在一个地方执行,为什么要将函数和它的执行分开?


使用此模式时是否有性能、可维护性、可测试性或跨浏览器方面的考虑?我不相信我见过很多人在野外使用这个,但我觉得它可能非常有用

最佳答案

我一直认为标签很酷:

hideStuffOnInstantiaton: {
  $('oneThing').hide().removeClass();
  $('#somethign_else').slideUp();
  $('.foo').fadeOut();
}

实际上,这样做通常很愚蠢。相反,分组功能通常属于其自己的功能。

关于javascript - 使用命名立即调用函数表达式 (IIFE) 而不是注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15530374/

相关文章:

javascript - 将错误从一个异步函数传递到另一个

javascript - vis.js 的 onMoveGroup 示例

api - 我怎样才能在我的三种语言站点中以所有三种不同的语言使用 Disqus 评论?

.net - 我应该使用 Resharper 来整理其他人的代码吗?

javascript - 在 Extjs 中动态生成的表单中的验证

asp.net - 将 javascript 变量发送到服务器端 ASP .NET

javascript - 阅读 Javascript 注释

npm - 在执行命令时究竟如何使用 NPM 脚本和 echo?

unix - 迎接2038年我们应该做什么准备?

java - 为什么 'getter' 类中的 'Manager' 方法不是静态的?