IIFE与一元运算符:真实世界的用例

时间:2014-09-27 18:51:57

标签: javascript

我们可以假装使用一元运算符作为IIFE,如下所示:

+function(){
   return 5;
}();//5


-function(){
   return 5;
}();//-5


~function(){
   return 5;
}();//-6


!function(){
   return 5;
}();//false

那么,是否存在这种IIFE的真实用例,或者我们应该避免使用一元运算符来使用IIFE并且只使用真正的IIFE:

(function(){
   return 5;
}()); //5

2 个答案:

答案 0 :(得分:0)

我的IDE对+function()事情感到不满:

enter image description here

以及JSLint和JSHint。最好避免像这样的结构,因为:

  • 他们混淆了读者
  • 他们混淆了IDE和验证器
  • 你不能从这样的IIFE返回任何有意义的东西(例如,一个目标,这是迄今为止最常见的用例)。

答案 1 :(得分:-1)

使用IIFE与操作员对我的唯一好处是,如果我忘记使用不会导致问题的尾随分号。

但是如果我忘记使用尾随的分号,那么在没有操作符的情况下使用IIFE会是一个问题。

(function(){
...
}()) //no semi-colon
(function(){
...
}());

前面的代码将被解释为函数调用。 (第一个IIFE将是要调用的函数,第二个将是参数)


自@georg回答以来,在大多数用例中没有任何有意义的回复,我会选择将IIFE与运营商一起使用。