2
我在互聯網瀏覽並在此JavaScript函數如何理解我的函數的輸出在JavaScript
function foo(){
function bar() {
return 3;
}
return bar();
function bar() {
return 8;
}
}
console.log(foo());
=>8
這真是混亂爲什麼這個函數返回時,8它叫出來。我會假設這段代碼會運行該函數的內容,並停止在return bar();
並返回3.我在這裏錯過了什麼?
這是因爲函數聲明被懸掛在塊的頂部。 – zakangelle 2014-10-27 20:52:45
函數被吊起來 - 如果它在聲明後被聲明並不重要,它仍然可以運行。最後一個'bar()'覆蓋第一個。 – tymeJV 2014-10-27 20:52:48
只是好奇,這是純粹的學術價值問題嗎?爲什麼有人會這樣寫代碼?真的,有一個很好的理由嗎? – 2014-10-27 20:55:54