【问题标题】:Are all functions inside of an IIFE expressions?IIFE 表达式中的所有函数吗?
【发布时间】:2016-10-14 17:13:48
【问题描述】:

如果 (function foo(){}) 是一个表达式,因为“上下文”因为“(括号)”是一个分组运算符,分组运算符只能包含一个表达式。

这导致了一个问题,你可以在 IIFE 中声明一个函数,否则它仍然算作一个函数表达式?

【问题讨论】:

    标签: javascript function iife function-declaration function-expression


    【解决方案1】:

    如果用括号括起来,函数本身就变成了一个表达式,因为括号创建了一个表达式上下文。

    这不会影响函数体中的任何语句或声明。

    (function iife() {
         function example() {
              …
         }
         …
    }());
    

    这里,iife 的文字是一个表达式,因为它在 (…()) 内部,但 example 像往常一样是一个声明,因为它是函数体的一部分。

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 1970-01-01
      • 2016-05-04
      • 2012-12-28
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      相关资源
      最近更新 更多