2 votes

Exécuter des fonctions dans différents fichiers

J'ai plusieurs fichiers JS ; le premier est une bibliothèque qui sera utilisée par les suivants, et chacun de ces autres fichiers a une fonction main() qui appelle les fonctions de ce fichier.

lib.js => bibliothèque

a.js : : main() => appeler les fonctions dans a.js
b.js : : main() => appeler des fonctions dans b.js
...
...

Je voudrais donc que soit exécutée la fonction principal pour ces fichiers (après avoir chargé lib.js ).

Comment exécuter chaque fonction principal après le chargement du fichier JS ?
Il s'agirait d'une charge a.js et exécuter principal , charge b.js et exécuter principal , ...

2voto

mic Points 4661

JavaScript n'est pas C ou quelque chose de similaire.

Le fichier dans lequel vous définissez la fonction n'a pas d'importance. La fonction sera écrasée.

Ainsi, si vous chargez d'abord le fichier a.js et ensuite le fichier b.js Les main sera la fonction main que vous avez définie dans b.js et le main que vous avez définie dans a.js n'existe nulle part.

Si vous souhaitez conserver les anciennes fonctions, je vous recommande de créer un objet dans chaque fichier et d'y définir la fonction principale. Quelque chose comme ceci.

a.js :

var a = {};
a.main = function() {
    /* do stuff */
};

b.js :

var b = {};
b.main = function() {
    /* do stuff */
};

Vous pouvez donc maintenant appeler :

a.main();

et

b.main();

1voto

Marc Points 4418

Si vous avez besoin de contrôler les dépendances (ordre de chargement), utilisez quelque chose comme head.js o require.js .

Cependant, ne polluez pas votre espace de noms global en réutilisant le nom de la fonction globale main dans tous vos fichiers JS. Le web regorge de documentation sur la manière d'éviter de polluer l'espace de noms global et sur les raisons pour lesquelles c'est une bonne idée. Il est facile de faire des recherches sur le web.

Plus d'informations dans les réponses ici : Comment déclarer un espace de noms en JavaScript ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X