JavaScript中的“通常”函数与函数变量

这个问题在这里已经有了答案:

  • var functionName = function(){} vs function functionName(){} 31个答案

  • 本文可能会回答您的问题:JavaScript函数声明歧义。

    只有第一个是一个实际的函数声明,而速记方法只是一个常规变量声明,其中一个匿名函数被赋值为它的值。

    (也可以看看评论,这也可能会得到一些有用的信息)


    我知道它们之间的区别在于,无论您声明它们,命名函数在任何地方都能正常工作,变量中的函数不会。

    a();//works   
    function a(){..}
    

    作品

    a();//error
    var a=function(){..}
    

    不起作用,但如果您在声明后使用它,则可以调用它

    var a=function(){..}
    a();//works
    

    表面上没有区别,所以你可以在你的代码中使用这两种格式。

    对于js解释器,它是不同的。

    第一个是有名的功能。

    第二个是分配给变量的匿名函数。

    另外,在调试的时候,你不会得到堆栈跟踪中第二个函数的名字。

    链接地址: http://www.djcxy.com/p/2835.html

    上一篇: "Usual" functions vs function variables in JavaScript

    下一篇: Javascript Function Definition Syntax