Globali sono cattivi perché non causano problemi subito. Solo dopo, dopo averli usati dappertutto, causeranno problemi molto brutti - che non puoi più risolvere senza scrivere il tuo codice da zero.
Esempio: si utilizza $body
per definire alcune funzioni. Funziona bene Ma alla fine, hai anche bisogno di un valore. Quindi usi $body.foo
. Funziona bene. Quindi aggiungi $body.bar
. E poi, qualche settimana dopo, hai bisogno di un altro valore per aggiungere $body.bar
.
Test del codice e sembra funzionare. Ma in effetti, hai "aggiunto" la stessa variabile due volte. Questo non è un problema perché JavaScript non capisce il concetto di "creare una nuova variabile una volta". Sa solo "creare se non esiste già". Quindi si utilizza il codice e, infine, una funzione modificherà $body.bar
interrompendo un'altra funzione. Anche trovare il problema ti richiederà molto tempo.
Ecco perché è meglio assicurarsi che le variabili possano essere viste solo in base alle necessità. In questo modo, una funzione non può rompere un'altra. Questo diventa più importante man mano che il tuo codice cresce.
fonte
2010-11-22 14:26:39
Oppure sovrascrivere qualche altra variabile globale denominata $ body – Mchl
sì, ma in questo esempio sostituisce il valore globale, in questo modo lo nasconde solo nell'ambito della funzione – mpapis
Una funzione letterale utilizzando le variabili locali dichiarate in lo stesso ambito in cui è stata definita la funzione è chiamato [chiusura] (http://jibbering.com/faq/notes/closures/), e dovrebbe essere ampiamente utilizzato in jQuery con grande effetto. – Phrogz