将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函数分配给变量的效果[重复]的主要内容,如果未能解决你的问题,请参考以下文章