javascript悬挂
var bar = function() { alert("bar global");}function f() {bar();var bar = function() { alert("bar local"); }}/*而这种方法则等同于:var bar = function(){ alert("bar global");}function f(){ var bar; bar(); var bar = function(){ alert("bar local") }}*/
也即,用变量声明的方式定义函数时候,只有声明被提到函数的开头,而用函数定义的方式定义函数时,整个函数体都会被提到函数的开头,这样导致了一个问题:
? ? ? ?第二种定义方式允许函数没定义之前就使用它。
因此,在js good parts中作者推荐是用 var bar = function(){}的方式定义函数。
?
?