我们可以假装使用一元运算符作为IIFE,如下所示:
+function(){
return 5;
}();//5
-function(){
return 5;
}();//-5
~function(){
return 5;
}();//-6
!function(){
return 5;
}();//false
那么,是否存在这种IIFE的真实用例,或者我们应该避免使用一元运算符来使用IIFE并且只使用真正的IIFE:
(function(){
return 5;
}()); //5
答案 0 :(得分:0)
我的IDE对+function()
事情感到不满:
以及JSLint和JSHint。最好避免像这样的结构,因为:
答案 1 :(得分:-1)
使用IIFE与操作员对我的唯一好处是,如果我忘记使用不会导致问题的尾随分号。
但是如果我忘记使用尾随的分号,那么在没有操作符的情况下使用IIFE会是一个问题。
(function(){
...
}()) //no semi-colon
(function(){
...
}());
前面的代码将被解释为函数调用。 (第一个IIFE将是要调用的函数,第二个将是参数)
自@georg回答以来,在大多数用例中没有任何有意义的回复,我会选择将IIFE与运营商一起使用。