Come sembra rendersi conto, è una buona idea non scaricare tutte le funzioni di utilità nello spazio dei nomi globale. Minore è l'impatto sul namespace globale, meglio è. Se si dispone già di jQuery, quindi le scelte di dove metterli sono:
- come nuovi metodi sull'oggetto jQuery come:
jQuery.myUtil1()
, jQuery.myUtil2()
.
- Come nuovi metodi sotto un oggetto sull'oggetto jQuery come:
jQuery.jfUtils.myUtil1()
, jQuery.jfUtils.myUtil2()
.
- Come nuovi metodi su un nuovo oggetto globale (niente a che fare con jQuery) come:
jfUtils.myUtil1()
, jfUtils.myUtil2()
.
L'opzione 2) mi sembra migliore dell'opzione 1) perché si riduce la possibilità di scontrarsi con altre funzioni jQuery sebbene si aggiunga una ricerca aggiuntiva per ogni chiamata di funzione.
L'opzione 3) mi sembra perfettamente accettabile in quanto aggiunge un solo nuovo elemento al namespace globale, fintanto che il nome è ragionevolmente unico, si dovrebbe essere OK.
Quindi, penso che potresti andare con l'opzione 2) o con l'opzione 3). L'opzione 2) potrebbe essere un po 'più sicura perché si conosce l'estensione generale di ciò che si trova in quello spazio dei nomi, ma entrambi possono funzionare.
Grazie a jfriend00 è davvero una questione di preferenza per i suoni di esso, oltre a aggiungerlo direttamente all'oggetto jquery devi essere più attento. Ecco perché ho prima controllato il file jquery.js per assicurarmi che non ci fossero metodi con lo stesso nome che avrei aggiunto. Sembra solo più pulito per aggiungerli direttamente al nome jquery. Ma vedo anche la protezione extra di aggiungere un altro oggetto direttamente allo spazio dei nomi jquery per aggiungere i tuoi metodi. – Chapsterj
+1 Definitivamente andare con l'opzione 2. Non è poi così male scriverlo come $ .util.myMethod() e la protezione salverà il mal di testa lungo la linea. Raggruppare funzioni comuni in namespace è una buona pratica in tutte le lingue. L'eccezione è a meno che non decidiate di legare alla catena di manipolazione DOM di jQuery. –