将javascript函数赋给变量的效果

Effect of assigning JavaScript function to variable

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
JavaScript: var functionName = function() {} vs function functionName() {}

在javascript中,我可以定义一个函数并将其分配给一个变量:

var myVar = function myFunc(){};

或单独定义函数:

function myFunc(){};

第一种方法的用例是什么?


向变量声明的函数不会提升到作用域的顶部

1
2
3
4
5
6
7
8
9
function run() {

   fn1(); // logs"hi"
   fn2(); // error

   function fn1 () { console.log("hi"); }
   var fn2 = function () { console.log("hi again"); };    

}

请参阅前面的相关答案。javascript中首选命名函数还是匿名函数?

在分析运行之后,结果会与此类似

1
2
3
4
5
6
7
8
9
10
11
12
function run() {

       function fn1 () { console.log("hi"); }
       var fn2;

       fn1(); // logs"hi"
       fn2(); // error


       fn2 = function () { console.log("hi again"); };    

    }