定义函数时,这两种方式有什么区别:
功能t1(){}
var t2 = function(){}
t1是一个函数本身,t2是函数的引用吗?
答案 0 :(得分:-2)
第一个是使用函数语句,这相当于这样做:
var t1 = function t1() {};
这与您的 t2 示例非常相似,一个区别是 t2 未命名;它是一个存储在 t2 变量中的匿名函数。
请记住,当使用命名函数语句(如 t1 )时,var声明将被提升到范围的顶部。
这就是this example工作的原因,即使它看起来像是在定义函数之前调用函数。该函数在 sayHello 变量之上被提升,这就是它可以被使用的原因。
反面是this example,显示 t2 示例不起作用,因为'foo'函数没有被提升到顶部。