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