function A() {
function B() {
...
}
B();
}
Es la función B
creada cada vez que se llama A
o hay algo de almacenamiento en caché. No lo está haciendo local como:¿Las declaraciones de funciones locales se almacenan en caché?
function A() {
B();
}
function B() {
...
}
¿Una mejora en el rendimiento significativa?
¿Es válido hacer esto como una opción de estilo? (B
en este caso es solo una función de ayuda para A
.) O debería favorecer al segundo para la velocidad?
¿Se debe usar o evitar este estilo para facilitar la lectura?
Parece FF4 en línea B
para el caso local y elimina la sobrecarga de llamada a la función.
¿Qué pasa con otros navegadores?
Declarar una función dentro de otra es malo. En tu primer ejemplo, B() debería haber sido una expresión. Consulte aquí: http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascript – DanMan
Parece que su caso de prueba no es correcto; en realidad no estás ejecutando las funciones, solo las declaras. Consulte http://jsperf.com/inner-function-optimization. Chrome no parece optimizar. Dudo que cualquier motor lo haga. – Matt
@Matt Oh ... Olvidé llamarlos. Qué estúpido :( – Raynos