在 Javascript 中实现 IIFE 有两种(常见)方法。
// Way 1
(function(){
/* My IIFE Body*/
})()
//Way 2
!function(){
/* My IIFE Body*/
}()
我想知道是否有充分的理由使用第二个。
我只看到不使用第二个的理由。例如,如果您希望 IIFE 返回某些内容,则不能将其分配给这样的变量:
var x =
(function()
{ return 5; })(); // x will be 5
var y =
!function()
{ return 5; }(); // y will be true
因为它将被转换为 bool 值。每当我想从 Way-2-IIFE 访问对象时,我都会使用像这样的闭包 fiddle .
第二个变体也没有性能提升,如您所见 here 。
那么使用方法二有什么充分的理由吗?如果是这样,你能给我举个例子吗?
最佳答案
人们使用第二种方法,因为它可以节省一个字节(!
与 (
和 )
)。
关于javascript - 是否有理由在 JavaScript 中编写使用前导 'not' - 运算符 (!) 调用的 IIFE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29108291/