2011-11-17 15 views

Respuesta

6

Se omite el código que tiene que hacer una búsqueda de alcance desde global está en el ámbito dentro de la función.


Editar - Es una optimización del rendimiento. El alcance en javascript está limitado al alcance de la función. global en este caso se está definiendo dentro de ese alcance, por lo que cuando el código llega al global[...], mira su alcance inmediato (dentro de la función) y encuentra global de inmediato. Sin eso, tendría que pasar al ámbito de cierre, que en este caso es el espacio de nombres javascript global, y buscar ese alcance completo para window.

+0

¿Cuándo importaría esa pequeña diferencia de rendimiento? – delnan

+1

Sí. Puede pensar en "global" como un puntero a ventana, como decir que un apodo es más rápido que decir el nombre legal de una persona. –

+1

@Delnan: si puedes hacer algo mejor, ¿por qué no hacerlo? –

2

El intérprete de JavaScript del navegador debe determinar el alcance de cualquier variable que encuentre, comenzando en el ámbito más local y yendo hacia el exterior. El uso de un cierre de función con window como parámetro global reduce la necesidad de extenderse más arriba en la cadena de alcance para encontrar window.

window es disponible en todas partes, pero utilizando global la forma en que es en su ejemplo es con más prestaciones.

Cuestiones relacionadas