JavaScript立即执行函数表达式(IIFE)详解与命名函数误区

作者:函数茶馆

时间:2026-10-29

浏览:459

本文介绍JavaScript中立即执行函数表达式(IIFE)的概念,对比其与自执行匿名函数的区别。通过分析命名函数递归调用及arguments.callee的使用示例,指出将普通命名函数误称为自执行函数的误区,强调IIFE在作用域隔离中的明确语义。

文章目录

IIFE的基本概念与命名辨析

在JavaScript开发中,我们常常见到如下形式的匿名函数写法。

具体代码实现如下:

(function(){
console.log("test");
})();

过去,这种写法通常被称为自执行的匿名函数(self-executing anonymous function)。

然而,更准确的术语是:立即调用函数表达式(IIFE,Immediately-Invoked Function Expression)。

即立即调用函数表达式。

相较于“自执行匿名函数”这一说法,“立即调用函数表达式”的含义更为清晰准确。

自执行函数的常见形式与误区

自执行函数存在以下几种典型示例:

代码示例如下:

function foo() { foo(); }

以及另一种形式:


代码示例如下:

var foo = function() { arguments.callee(); };

更重要的是,像下面这种写法,有时也被误认为是自执行匿名函数:


代码示例如下:

var foo = function() { foo(); };

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章