这两种功能/方法有什么区别?

Gau*_*rma 7 javascript function

我只使用jQuery编写JavaScript代码.令我困惑的一件事是这两种写函数的方法,

第一种方法

vote = function (action,feedbackId,responseDiv)
{
    alert('hi');
    return feedbackId;
}
Run Code Online (Sandbox Code Playgroud)

第二种方法

function vote(action, feedbackId,responseDiv)
{
    alert('hi');
    return feedbackId;
}
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别?为什么要使用第一种方法或第二种方法?

CMS*_*CMS 8

第一个是赋值给变量的函数表达式vote,第二个是函数声明.

主要区别在于函数语句在分析时计算,它们在运行时声明之前可用.

也可以看看:


Ste*_*son 6

function myFunction() {}
Run Code Online (Sandbox Code Playgroud)

......被称为"功能声明".

var myFunction = function() {};
Run Code Online (Sandbox Code Playgroud)

......被称为"函数表达式".

它们非常相似; 然而:

  • 函数声明可以在引用后声明,而函数表达式必须在引用之前声明:

    // OK
    myFunction();
    function myFunction() {}
    
    // Error
    myFunction();
    var myFunction = function() {};
    
    Run Code Online (Sandbox Code Playgroud)
  • 由于函数表达式是一个语句,因此应该跟一个分号.

见函数的构造与功能的声明与函数表达式在Mozilla开发者中心以获取更多信息.