function A() {
function B() {
...
}
B();
}
功能B
每次調用A
或者是否有一些緩存。是不是讓它像本地一樣:緩存本地函數聲明嗎?
function A() {
B();
}
function B() {
...
}
顯着的性能改進?
是否有效做到這一點的風格選擇? (B
在這種情況下只是A
的輔助功能。)或者第二個應該受到速度的青睞?
爲了便於閱讀,應該使用還是避免使用此樣式?
似乎FF4爲本地情況內聯B
並消除了函數調用開銷。
其他瀏覽器呢?
在另一個裏面聲明一個函數是不好的。在你的第一個例子中B()應該是一個表達式。看到這裏:http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascript – DanMan 2011-03-24 18:06:50
它看起來像你的測試案例是不正確的;你實際上並沒有執行這些函數,只是聲明它們。結帳http://jsperf.com/inner-function-optimization。 Chrome似乎沒有優化。我懷疑任何引擎會。 – Matt 2011-03-24 18:38:22
@Matt哦..我忘了給他們打電話。多麼愚蠢:( – Raynos 2011-03-24 20:18:49