【问题标题】:difference between javascript function declaration [duplicate]javascript函数声明之间的区别[重复]
【发布时间】:2013-03-14 05:31:50
【问题描述】:

我知道这种类型的问题被问了很多,但我没有看到任何关于这种类型声明的问题

(function(){
    myFuncName=function(myVar){
       // some logic
    };
}());

这有什么不同

function myFuncName(myVar){
// some logic
}

【问题讨论】:

  • 这基本上是Anonymous function vs normal function。第一个创建一个匿名函数并将其分配给myFuncName,无论myFuncName 指的是什么词汇联系。另一个是在当前变量上下文中创建名称MyFuncName 的函数声明。

标签: javascript function


【解决方案1】:

第一个是匿名函数,您无法在以后引用和调用它,因此您只需在创建后立即执行( )!

(function(){
    alert(1)
}())

第二个是参考函数,您可以在以后随时调用它。除非您明确调用它,否则它不会被执行

【讨论】:

  • 这是对问题的轻微误读,因为第一个问题将匿名函数分配给myFuncName,这是以后可以引用的方式。细微的差别在于myFuncName 可见的上下文。
【解决方案2】:

您所做的是创建一个匿名函数,其中也有一个闭包。 Read more about closures here

基本上,闭包意味着您在另一个函数内部声明了一个函数。这将让您在第一个函数退出后访问局部变量。

通常您无法执行此操作,因为它们超出了范围。

至于其他部分。你可以在这里找到一个非常有用的指南Why do you need to invoke an anonymous function on the same line?

总而言之,您已经创建了一个匿名的自调用函数表达式。
自调用来自() 紧跟在函数表达式之后。

【讨论】:

    【解决方案3】:

    这里是 a link,它解释了 javascript 中的函数声明。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2016-04-20
      • 2015-07-29
      • 2014-11-21
      • 2011-05-23
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多