Javascript 与IIFE相比,使用命名函数是否有优势?

Javascript 与IIFE相比,使用命名函数是否有优势?,javascript,function,iife,Javascript,Function,Iife,我知道生活总是如此 我看到一系列的语句是开放的,也就是说,它们没有用括号封装 为什么我没有看到一个函数被调用 // lib code...we are inside an IIFE function fooName () { } fooName(); // lib code... 当不需要闭包时,即不需要持久或静态局部变量时,立即调用一系列语句 这个习惯用法/模式有什么问题吗?它有名字吗?它被使用了吗 非“小”代码 function manageG

我知道生活总是如此

我看到一系列的语句是开放的,也就是说,它们没有用括号封装

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

    // 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();

这只是一个函数声明,后跟它的调用

它没有名字,因为它没有特殊性:它只是语言的基本用法

顺便说一句,它对生活没有好处:

  • 更冗长
  • 它向全局(或本地)命名空间添加名称

如果您不需要闭包,也不需要避免名称空间污染,因为您的生命很小,那么您可以直接在函数中包含代码,而不是声明它。

我认为问题可能是关于函数(声明的函数)的定义和调用在生活中。@pure_代码为什么要使用这种模式?如果你不需要名字,为什么要声明?你让你的代码变得更复杂,却毫无收获。@Pointy我之所以没有看到“在生活中”的初始注释,是因为它以前不在这里,就像在中一样。顺便说一句,纯代码,你太经常在第一个答案之后创建问题并删除它们而不加评论。这对于回答问题的人来说是非常粗鲁的。在“fooName”函数中是否存在
setTimeout()
?我不确定您是否要求我澄清,因此如果是,我的意思是,当函数使用
setTimeout()时,函数声明后调用函数的模式是常见的
使其在将来再次执行。初始函数调用是启动循环所必需的。