javascript中有两种流行的闭包样式。我首先调用匿名构造函数:
new function() {
var code...
}
和内联执行函数:
(function() {
var code...
})();
两者之间在行为上有区别吗?一个比另一个更好吗?
它们都通过执行代码块来创建闭包。就样式而言,出于两个原因,我更喜欢第二种:
乍看之下,代码实际上将被执行并不是立即显而易见的。该行看起来像是在创建一个新函数,而不是将其作为构造函数执行,但这并不是实际发生的情况。避免执行与实际情况不符的代码!
另外,(function(){... })();化妆漂亮的穿插记号,这样就可以立即看到你正在进入和离开一个闭合范围。这很好,因为它会提醒程序员阅读它的范围更改,并且在您对文件进行某些后处理(例如缩小)时特别有用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。