使用立即调用的函数expression(IIFE)

时间:2019-12-06 06:35:33

标签: javascript node.js ecmascript-6

此代码段可以正常运行

const foo = 2;
(function (){
    console.log(foo);
})()

现在,我添加了一个变量foo,它是一个函数, 但是以下代码段不起作用,

const foo = function(){ return "foo" }
(function (){
    console.log("aa");
})()

这将引发错误:TypeError: (intermediate value)(...) is not a function

但是,(显然)在IIFE范围内移动功能对象是可以的,

(function () {
    const foo = function () { return "foo" }
    console.log(foo())
})()

节点版本:v12.12 / v10.16

问题

使用IIFE时,这是唯一的方法吗?

第二个片段到底发生了什么?

0 个答案:

没有答案