javascript - 使用命名函数比 IIFE 有优势吗?

标签 javascript function iife

我一直看到 IIFE。

我看到一系列处于开放状态的语句,即它们没有被括号括起来。

为什么我没有看到一个函数及其调用

    // lib code...we are inside an IIFE 

    function fooName () {
    }
    fooName();

    // lib code...

当不需要闭包时立即调用一系列语句,即不需要持久或静态局部变量?

这个习语/模式有问题吗?它有名字吗?用过吗?

非“小”代码

function manageGlobal() {
    if (win.$A && win.$A.cg) {
        $A.extend($A, window.$A);
    } else if (window.$A) {
        $A_previous = window.$A;
    } else {
        $A = window.$A = {};
    }
}
manageGlobal();

最佳答案

这只是一个函数声明及其调用。

它没有名称,因为它没有特异性:它只是该语言的基本明显用法。

顺便说一下,它比 IIFE 没有优势:

  • 更详细
  • 它将名称添加到全局(或本地)命名空间。

如果您不需要闭包,并且不需要避免命名空间污染(因为您处于小型 IIFE 中),那么您可以直接在函数中包含代码,而不是声明它。

关于javascript - 使用命名函数比 IIFE 有优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075215/

相关文章:

javascript - javascript中自执行函数的目的是什么?

Javascript IIFE,不明白这个变量是如何变成全局变量的

javascript - ECMA 5 的 Object|Array.observe() 实现

javascript - 如何在javascript中检测右键单击+剪切/删除/粘贴/撤消?

python - 在 Pandas 的多列上应用自定义函数

Python装饰器正确计时递归函数

javascript - 我可以将数据导出到另一个 React 组件吗?

javascript - 包含无填充或间距的 JQM 小部件的 HTML 表

javascript - 为什么我们不能自己返回 timeOut 而不是创建一个新的 Promise?

javascript - 如何在嵌套 IIFE 模块中引用父 JavaScript 函数?