将JavaScript函数赋值给变量的效果

时间:2013-01-20 18:06:54

标签: javascript

  

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

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

var myVar = function myFunc(){};

或定义独立功能:

function myFunc(){};

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

1 个答案:

答案 0 :(得分:4)

声明给变量的函数不会被提升到范围的顶部

function run() {

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

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

}

请参阅此前相关的答案。 Are named functions or anonymous functions preferred in JavaScript?

在解析完成之后,这将最终看起来与此相似

function run() {

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

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


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

    }