IIFE (Immediately Invoked Function Expression)

  • 定义: IIFE 是指立即调用函数表达式。在 JavaScript 中,它是一种设计模式,用于创建一个自执行的匿名函数。

  • 语法: 普通的函数声明和函数表达式之间的区别主要在于如何定义它们,而 IIFE 的特点是,它在定义时就立即执行。其典型语法如下:

    (function() {
      // 代码块
    })();
     
    (function() {
      // 代码块
    }());
  • 用途:

    • 变量作用域隔离: IIFE 创建了一个新的作用域,避免了变量污染全局命名空间。
    • 模块化开发: 在没有模块化工具的情况下,IIFE 可以用来封装代码,形成独立模块。
  • 例子:

    (function() {
      var privateVar = "I am private";
      console.log(privateVar);
    })();
     
    // 尝试访问 privateVar 会抛出错误,因为它在 IIFE 外部不可见
  • 优点:

    • 避免全局变量污染,增强代码可维护性和可读性。
    • 可以创建私有成员,对于需要保护的变量或方法非常有用。
  • 注意事项:

    • 尽管大多数现代 JavaScript 开发使用模块系统(如 ES6 模块、CommonJS 等)来实现类似功能,但在某些特定场景下(如立即执行需要),IIFE仍然是一个有用的工具。