2011-11-17 15 views

risposta

6

salta il codice dover fare una ricerca portata dal global è scope all'interno della funzione.


Modifica: si tratta di un ottimizzazione delle prestazioni. L'ambito in javascript è limitato all'ambito della funzione. global in questo caso viene definito all'interno di tale ambito, quindi quando il codice raggiunge global[...], esso esamina il suo ambito immediato (all'interno della funzione) e trova immediatamente global. In caso contrario, dovrebbe passare all'ambito di chiusura, che in questo caso è lo spazio dei nomi javascript globale e cercare l'intero ambito per window.

+0

Quando sarebbe importante la minima differenza di prestazioni? – delnan

+1

Sì. Puoi pensare a 'global' come un puntatore alla finestra, un po 'come dire che un nickname è più veloce del nome legale di una persona. –

+1

@Delnan: se riesci a fare qualcosa di meglio, perché non farlo? –

2

L'interprete JavaScript del browser deve determinare l'ambito di tutte le variabili individuate, iniziando dall'ambito più locale e procedendo verso l'esterno. L'utilizzo di una chiusura di funzione con window come parametro global riduce la necessità di estendere ulteriormente la catena di ambito per trovare window.

windowè disponibile ovunque, ma utilizzando global il senso che è nel tuo esempio è più performante.

Problemi correlati