function A() { function B() { ... } B(); }
每次调用A时是否创建了函数B,或者是否有一些缓存.不是像当地人一样:
function A() { B(); } function B() { ... }
显着的性能提升?
这样做风格选择有效吗? (在这种情况下,B只是A的辅助函数)或者第二种是否应该受到速度的青睐?
是否应该使用或避免使用此样式以提高可读性?
Benchmark.
似乎FF4为本地案例内联B并删除函数调用开销.
其他浏览器怎么样?
回答这个问题:是的,每次都会创建内部函数,至少在理论上是这样,这就是在编写代码时应该如何查看它,但智能优化器仍然可以将它转换为顶级函数,即使你有词汇依赖.如果它是一个微优化,我不会打扰,因为有一个内部功能也可以达到可读性和声明你的意图的目的.