0

可能重复:
JavaScript:var functionName = function() {} vs function functionName() {}

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

var myVar = function myFunc(){};

或独立定义函数:

function myFunc(){};

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

4

1 回答 1

4

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

function run() {

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

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

}

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

在解析通过它之后,这最终看起来与此类似

function run() {

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

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


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

    }
于 2013-01-20T18:10:12.980 回答