javascript – 本地函数声明是否被缓存?

前端之家收集整理的这篇文章主要介绍了javascript – 本地函数声明是否被缓存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
function A() {
     function B() {
          ...
     }        
     B();
}

每次调用A时是否创建了函数B,或者是否有一些缓存.不是像当地人一样:

function A() {
    B();
}
function B() {
    ...
}

显着的性能提升?

这样做风格选择有效吗? (在这种情况下,B只是A的辅助函数)或者第二种是否应该受到速度的青睐?

是否应该使用或避免使用此样式以提高可读性?

Benchmark.

似乎FF4为本地案例内联B并删除函数调用开销.

其他浏览器怎么样?

解决方法

在JS中声明内部函数可能的目的是在词法上绑定到外部函数的局部变量/参数.将它移出为顶级功能就会失败.

回答这个问题:是的,每次都会创建内部函数,至少在理论上是这样,这就是在编写代码时应该如何查看它,但智能优化器仍然可以将它转换为顶级函数,即使你有词汇依赖.如果它是一个微优化,我不会打扰,因为有一个内部功能也可以达到可读性和声明你的意图的目的.

猜你在找的JavaScript相关文章