Javascript JS的IIFEs(立即调用的函数表达式)的位置会导致意外错误
以下包含IIFE的代码在节点(节点:v8.6.0)环境中导致错误Javascript JS的IIFEs(立即调用的函数表达式)的位置会导致意外错误,javascript,iife,Javascript,Iife,以下包含IIFE的代码在节点(节点:v8.6.0)环境中导致错误 function A(){} A() (function(){})() (…)不是函数 这个错误信息让我感到困惑 如果我更改IIFE的位置,代码将在节点中成功运行 (function(){})() function A(){} A() 我在谷歌上搜索了答案,但没有找到原因。在这段代码中: function A(){} A() (function(){})() 第三行是从()开始的,JS解析器将其解释为函数调用
function A(){}
A()
(function(){})()
(…)不是函数
这个错误信息让我感到困惑
如果我更改IIFE的位置,代码将在节点中成功运行
(function(){})()
function A(){}
A()
我在谷歌上搜索了答案,但没有找到原因。在这段代码中:
function A(){}
A()
(function(){})()
第三行是从(
)开始的,JS解析器将其解释为函数调用
您可以尝试以下方法:
function A(){}
A(); // <-----
(function(){})()
两者都能解决问题
避免用
(
或[
盯着行,如果你使用;
你可以绕过这个问题
表达式应以;
结尾以避免此问题:
function A(){}
A();
(function(){})()
很好。你的回答解决了我的问题。将结果分配给变量也解决了问题。const test=(function(){})()
function A(){}
A();
(function(){})()