定义函数时,这两种方式有什么区别:
-
function t1() {}
-
var t2 = function() {}
t1 本身是函数,t2 是函数的引用吗?
最佳答案
第一个是使用function语句,相当于这样做:
var t1 = function t1() {};
它与您的 t2 示例非常相似,区别在于 t2 未命名;它是一个存储在 t2 变量中的匿名函数。
<小时/>请记住,当使用命名函数语句时(如t1),var 声明被提升到作用域的顶部。
这就是为什么this example有效,即使它看起来像是在定义函数之前调用该函数。该函数被提升到 sayHello 变量之上,这就是它可以被使用的原因。
另一面是this example ,表明 t2 示例不起作用,因为“foo”函数没有提升到顶部。
关于javascript 函数差异定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18799487/