开发者社区 问答 正文

闭合样式有什么区别

javascript中有两种流行的闭包样式。我首先调用匿名构造函数:

new function() { 
  var code...
}

和内联执行函数:

(function() {
  var code...
})();

两者之间在行为上有区别吗?一个比另一个更好吗?

展开
收起
游客ufivfoddcd53c 2020-01-03 16:48:54 935 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 它们都通过执行代码块来创建闭包。就样式而言,出于两个原因,我更喜欢第二种:

    乍看之下,代码实际上将被执行并不是立即显而易见的。该行看起来像是在创建一个新函数,而不是将其作为构造函数执行,但这并不是实际发生的情况。避免执行与实际情况不符的代码!

    另外,(function(){... })();化妆漂亮的穿插记号,这样就可以立即看到你正在进入和离开一个闭合范围。这很好,因为它会提醒程序员阅读它的范围更改,并且在您对文件进行某些后处理(例如缩小)时特别有用。

    2020-01-03 16:49:13 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等