我正在閱讀關於函數聲明和函數表達式之間區別的博客。使用命名函數表達式的要點是什麼?
它給出了這兩個例子。他們稱第一個爲「匿名函數表達式」,第二個爲「命名函數表達式」。
// anonymous function expression
var a = function(){
return 3;
}
// named function expression
var b = function bar(){
return 3;
}
我測試這兩個在Chrome瀏覽器的JS控制檯,我看到以下內容:
a()
=> 3
b()
=> 3
bar()
=> bar is not defined
我的問題是:在第二個函數表達式聲明,什麼是「酒吧」的地步?一般來說,爲什麼有人使用一個命名的函數表達式?
http://blog.niftysnippets.org/2010/03/anonymouses-anonymous.html,http://kangax.github.com/nfe/ – Bergi
@Juhana不是很好的重複,那裏的答案(和在其中一個被標記爲「笨蛋」)只處理提升和堆棧跟蹤。這裏至少有一個其他答案也提到了遞歸。但是,我找不到更好的騙局... – bfavaretto