【问题标题】:Effect of assigning JavaScript function to variable [duplicate]将JavaScript函数分配给变量的效果[重复]
【发布时间】:2013-01-03 20:27:21
【问题描述】:

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

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

var myVar = function myFunc(){};

或单独定义函数:

function myFunc(){};

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

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    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"); };    
    
        }
    

    【讨论】:

    • 非常感谢,特雷弗。这种差异背后有什么原因/逻辑吗?
    • JS解析器就是这么写的。也许这篇文章会有所帮助。 net.tutsplus.com/tutorials/javascript-ajax/…。我曾经有一篇关于它如何实际存储变量的精彩文章,但我找不到它。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2019-07-21
    相关资源
    最近更新 更多