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