Javascript: Meilleure façon de déclarer les fonctions à utiliser globalement?
Mon javascript fichier est assez gros (plus de 3000 lignes) et je suis confus quant à la façon de mettre en page mon dossier et delare fonctions afin qu'ils puissent appelé n'importe où dans le fichier.
De résumer mon fichier JS ressemble un peu à ceci en ce moment:
//ALL GLOBAL VARIABLES FIRST DECLARED HERE
var var1 , var2 ,var3
$(document).ready(function(){
//JQUERY STUFF
});
//ALL FUNCTIONS THAT NEED TO BE GLOBAL DECLARED HERE
function myFunction(){
//do some stuff here
}
Je suis en cours d'exécution dans des problèmes avec ce que certaines fonctions que j'appel dans les lieux ne semblent pas être déclarés au moment de l'appel ou ne sont pas disponibles mondialement. C'est très déroutant maintenant!
Quelqu'un pourrait-il suggérer le meilleur moyen à la disposition d'un grand js/jquery fichier avec certaines Fonctions JS, les Objets et les Variables disponibles pour être référencés dans le fichier.
Mise à JOUR:
Afin de simplifier ce correct (voir mes commentaires)?
window.MainModule = (function($, win, doc, undefined) {//WHAT IS BEING PASSED IN HERE?
var foo, bar, modules; //VARIABLES ACCESSIBLE ANYWHERE
var modules["foobar"] = (function() {//WHAT IS A MODULE? WHEN WOULD I USE A SEPERATE MODULE?
var someFunction = function() { ... };//DECLARING MY FUNCTIONS?
...
return {
init: someFunction,//IS THIS WHERE I USE/BIND MY FUNCTIONS TO EVENTS AND ELEMENTS?
...
};
}());
//hoist a variable into global scope
window.Global = someLocal;
return {
init: function() {//FUNCTION TO INIT ALL MODULES?
for (var key in modules) {
modules[key].init();
}
}
};
}(jQuery, this, document));
source d'informationauteur wilsonpage
Vous devez vous connecter pour publier un commentaire.
La section modules n'est pas correctement défini ... voici un peu rangé exemple.
[[Avertissement]]: C'est un pseudo-code module avec certains de code standard exclus pour des raisons de concision.
Rien déclaré avec
var x
à l'intérieur de votre fermeture principale est disponible dans tout l'ensemble de la fonction. Bien sûr, il ne sera pas réglé à ce que vous vous attendez à être ensemble, à moins que vous la définissez.Pour contrôler le chargement et le flux de split code dans ce qui est exécutée automatiquement dans votre auto de l'exécution de la fermeture et de ce qui doit manuellement
inited
par votre contrôleur avec la page/l'utilisateur des paramètres spécifiques.Vous pouvez les déclarer dans la Fenêtre de portée:
ou vous pouvez omettre le var, qui est le même que déclarer que quelque chose dans la fenêtre de portée: