gpt4 book ai didi

javascript - IIFE 和函数提升——不是函数错误

转载 作者:行者123 更新时间:2023-11-30 11:52:58 41 4
gpt4 key购买 nike

var Mod=(function () { say('hello'); 
var say = function (m){ console.log(m); };
return ({a: 'b'}); }
)();

VM3488:1 Uncaught TypeError: say is not a function(…)(anonymous function) @VM3488:1(anonymous function) @VM3488:1

但这行得通

var Mod = (function () { 
say('hello');
function say (m){ console.log(m); };
return ({a: 'b'}); }
)();

为什么会这样?如果我需要在我的 Mod 中使用“say”作为公共(public)函数,那将如何工作?

最佳答案

那是因为函数表达式没有被提升。第一个是函数表达式,第二个是提升的函数语句

另请注意,您的两个代码片段都没有导出 say 函数,因此它仍然是一个私有(private) 函数。

关于javascript - IIFE 和函数提升——不是函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38929273/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com