Perché mantenere la chiusura del wrapping in ogni js-file se può essere aggiunto dopo la concatenazione?

3

Al momento ogni file javasrcipt nel nostro progetto include wrapper di chiusura. Prima di distribuire tutti i file sono concatenati e ridotti a icona.

E mi sto chiedendo, abbiamo davvero bisogno di tutte quelle chiusure OPPURE una chiusura aggiunta dopo la concatenazione farà il lavoro.

Posso vedere solo una ragione per non farlo - la variabile che stiamo condividendo tra i file entrerà nello spazio dei nomi globale. Ma non c'è conflitto quindi non vedo alcun problema.

La vera domanda è quali altri aspetti possono essere? O più in generale quale approccio è migliore: una chiusura o molte?

    
posta sdespolit 26.03.2012 - 14:58
fonte

2 risposte

5

Sì, hai bisogno di tutte le chiusure in modo che i file siano separati gli uni dagli altri .

Se concatenate più di un file all'interno della stessa funzione, condivideranno le variabili, proprio come se fossero state globali. L'unico vantaggio a questo punto sarebbe quello di isolare il tuo codice da Javascript esterno di terze parti.

In ogni caso, direi che la cosa migliore che puoi fare è usare uno strumento di modularizzazione Javascript come RequireJS, così puoi smettere di preoccuparti di concatenare e generare i file da solo.

    
risposta data 26.03.2012 - 15:11
fonte
4

But there is no conflict so is don't see any problem

questo è un eufemismo orribile, avvolgi ogni singolo file in una chiusura in modo che tu possa "archiviare le variabili locali" all'interno di quel file.

Il fatto che avvolgendolo in una chiusura aggiunga 15 byte è l'unico svantaggio, se ti preoccupi di quei 15 byte allora la tua micro ottimizzazione.

    
risposta data 26.03.2012 - 15:11
fonte

Leggi altre domande sui tag