此代码段可以正常运行
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时,这是唯一的方法吗?
第二个片段到底发生了什么?