JavaScript 中的 IIFE 是什么?

2025-06-08

JavaScript 中的 IIFE 是什么?

当我在编码训练营课堂上第一次听到“IIFE”时,它立刻让我想起了我姐姐的狗“Yeffi”,在某些人类语言中它的意思是“漂亮”。

那么 JavaScript 语言中的 IIFE 是什么?

IIFE 代表立即调用函数表达式。它是一个 JavaScript 函数,一旦定义就会运行。

通常,当我们使用“函数声明”或“函数表达式”创建函数时,我们需要调用该函数才能使用它。

函数声明:

函数 myFunction(p1,p2){
    返回 p1 * p2;
}
警报(myFunction(4,3));
//12

函数表达式:

让 myFunction = function(p1,p2){
    返回 p1 * p2;
}
警报(myFunction(4,3));
//12

然而,在 IIFE 中,函数被包裹在括号中,使其成为一个函数表达式,后跟 (),它告诉 JavasScript 编译器立即调用。

(功能() {
   让 dName =“Yeffi”;
   警报(dName);
}
)();
//耶菲

那么我们为什么要使用 IIFE?

主要是因为隐私。任何在 IIFE 内部声明的变量都无法被外界访问。

(功能() {
   让 dName =“Yeffi”;
}
)();

控制台.log(dName);
// 未捕获的 ReferenceError:dName 未定义

如果您尝试在 IIFE 函数之外访问 dName 变量,则会收到如上所示的错误消息。IIFE 函数内的所有变量都保留在函数作用域内。
此外,它通过不创建命名函数来保护全局命名空间。当命名函数停留在全局命名空间中时,可能会被意外再次调用。但是,由于 IIFE 函数本身并非命名函数,因此不会被意外调用。这将避免任何潜在的安全隐患。因此,如今许多 JavaScript 库都使用了这种技术。

感谢阅读!

鏂囩珷鏉ユ簮锛�https://dev.to/gyi2521/what-is-iife-in-javascript-o81
PREV
为什么要学习...静态类型语言?
NEXT
🚨🏆 你必须了解的 5 大 LLM 开发开源替代方案 💥 TL:DR 1. DeepEval >> Humanloop 2. Llama3.1 >> Open AI GPT-4 3. LangChain >> OpenAI Assistants 4. Flowise >> Relevance AI 5. Lite LLM >> Martian AI