Ray*_*nos 7 javascript optimization implementation caching
function A() {
function B() {
...
}
B();
}
Run Code Online (Sandbox Code Playgroud)
是B每次A调用创建的函数还是有一些缓存.不是像当地人一样:
function A() {
B();
}
function B() {
...
}
Run Code Online (Sandbox Code Playgroud)
显着的性能提升?
这样做风格选择有效吗?(B在这种情况下,它只是一个辅助函数A.)或者第二个是否应该受到速度的青睐?
是否应该使用或避免使用此样式以提高可读性?
基准.
似乎FF4内联B本地案例并删除函数调用开销.
其他浏览器怎么样?
在 JS 中声明内部函数的目的可能是在词法上绑定到外部函数的局部变量/参数。将其移出为顶级功能违背了这一目的。
回答这个问题:是的,至少在理论上,每次都会创建内部函数,这就是您在编写代码时应该如何看待它,但是智能优化器仍然可以将其转换为顶级函数,即使你有词汇依赖性。如果这是一个微观优化,我不会打扰,因为拥有内部函数也可以达到可读性和声明你的意图的目的。