将JavaScript函数分配给变量的效果[重复]

Posted

技术标签:

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

可能重复:javascript: var functionName = function() vs function functionName()

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

var myVar = function myFunc();

或单独定义函数:

function myFunc();

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

【问题讨论】:

【参考方案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/…。我曾经有一篇关于它如何实际存储变量的精彩文章,但我找不到它。 :(

以上是关于将JavaScript函数分配给变量的效果[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将函数分配给变量

如何将函数分配给 Javascript 对象的属性?

将函数分配给R中的变量

Python - GUI复选框无法将带有参数的函数分配给变量

将递归函数分配给python中的变量

React Error - 在导出为模块之前将箭头函数分配给变量和