我知道这类问题被问了很多,但我没有看到任何关于此类声明的问题
(function(){
myFuncName=function(myVar){
// some logic
};
}());
与
有何不同function myFuncName(myVar){
// some logic
}
答案 0 :(得分:1)
你在做什么是创建一个匿名函数,它也有一个闭包。 Read more about closures here。
基本上,闭包意味着您已在另一个函数内声明了一个函数。这将允许您在第一个函数退出后访问局部变量。
通常你不能这样做,因为它们会超出范围。
至于其他部分。您可以找到一个非常有用的指南,了解此处发生的事情Why do you need to invoke an anonymous function on the same line?。
总结一下,你已经创建了一个匿名的自我调用函数表达式
自我调用来自()
紧跟函数表达式的事实。
答案 1 :(得分:1)
第一个是匿名函数,你无法在以后引用和调用它,所以你只需在创建后立即执行()!
(function(){
alert(1)
}())
第二个是参考函数,您可以在以后随时调用它。除非你明确地调用它,否则它不会被执行
答案 2 :(得分:0)
这是a link,它解释了javascript中的函数声明。
希望这有帮助!