La fonction peut être appelée comme si elle se trouvait dans le même fichier JS tant que le fichier contenant la définition de la fonction a été chargé avant la première utilisation de la fonction.
C'est à dire
File1.js
function alertNumber(number) {
alert(number);
}
File2.js
function alertOne() {
alertNumber("one");
}
HTML
<head>
....
<script src="File1.js" type="text/javascript"></script>
<script src="File2.js" type="text/javascript"></script>
....
</head>
<body>
....
<script type="text/javascript">
alertOne();
</script>
....
</body>
L'autre façon ne fonctionnera pas.
Comme l'a souligné à juste titre Stuart Wakefield . L'autre façon fonctionnera également.
HTML
<head>
....
<script src="File2.js" type="text/javascript"></script>
<script src="File1.js" type="text/javascript"></script>
....
</head>
<body>
....
<script type="text/javascript">
alertOne();
</script>
....
</body>
Ce qui ne fonctionnera pas serait:
HTML
<head>
....
<script src="File2.js" type="text/javascript"></script>
<script type="text/javascript">
alertOne();
</script>
<script src="File1.js" type="text/javascript"></script>
....
</head>
<body>
....
</body>
Bien qu'il alertOne
soit défini lors de son appel, il utilise en interne une fonction qui n'est toujours pas définie ( alertNumber
).
Edgar Hernandez
la source
La réponse ci-dessus suppose à tort que l'ordre d'inclusion des fichiers est important. Comme la fonction alertNumber n'est pas appelée tant que la fonction alertOne n'est pas appelée. Tant que les deux fichiers sont inclus dans le temps, alertOne est appelé, l'ordre des fichiers n'a pas d'importance:
[HTML]
[JS]
Ou il peut être commandé comme suit:
[HTML]
[JS]
Mais si vous deviez faire ceci:
[HTML]
[JS]
Il importe uniquement que les variables et les fonctions soient disponibles au moment de l'exécution. Lorsqu'une fonction est définie, elle n'exécute ni ne résout aucune des variables déclarées à l'intérieur jusqu'à ce que cette fonction soit ensuite appelée.
L'inclusion de différents fichiers de script n'est pas différente du fait que le script se trouve dans cet ordre dans le même fichier, à l'exception des scripts différés:
alors vous devez être prudent.
la source
function myfunction() {
et script2:alert();}
cela ne fonctionnera pas. Cela me dérange car j'essayais de modulariser un fichier js trop long. Voir stackoverflow.com/questions/20311604/…this
contexte si l'une des fonctions est dans une classe?this
est lié au point où la fonction est appelée (sauf si ellebind
est appelée au préalable). Les deux fonctions dans deux fichiers séparés ne partageront pas lethis
contexte automatiquement, dans l'exemple ci-dessus ni l'un ni l'autrethis
, c'est-window
à- dire en mode non strict ouundefined
en mode strict. Vous pouvez faire en sorte que la fonction dans l'autre script partage la mêmethis
valeur en affectant la fonction en tant que membre de l'objet (c'est-à-dire au sein du constructeurthis.method = myOtherFunc
) ou en utilisant bind. Veuillez poster une question SO avec plus de détails si vous avez besoin d'une réponse plus approfondie. Cheers, StuartTant que les deux sont référencés par la page Web, oui.
Vous appelez simplement les fonctions comme si elles se trouvaient dans le même fichier JS.
la source
Si tous les fichiers sont inclus, vous pouvez appeler les propriétés d' un fichier à un autre (comme une fonction, une variable, un objet, etc.)
Les fonctions et variables js que vous écrivez dans un fichier .js - par exemple, a.js seront disponibles pour d'autres fichiers js - dites b.js tant que a.js et b.js sont inclus dans le fichier à l'aide des éléments suivants: (et dans le même ordre si la fonction de b.js appelle celle de a.js).
la source
ES6: Au lieu d'inclure de nombreux fichiers js en utilisant
<script>
en .html, vous ne pouvez inclure qu'un seul fichier principal, par exemple enscript.js
utilisant l'attributtype="module"
( support ) et à l'intérieur,script.js
vous pouvez inclure d'autres fichiers:Et dans le
script.js
fichier, incluez un autre fichier comme celui-ci:Dans 'module.js', vous devez exporter la fonction / classe que vous importerez
Exemple de travail ici .
la source
Oui, vous pouvez . vous devez vous référer à la fois
JS file
à la.aspx
pagela source
Vous pouvez appeler la fonction créée dans un autre fichier js à partir du fichier dans lequel vous travaillez. Donc pour cela, vous devez d'abord ajouter le fichier js externe dans le document html
La fonction définie dans le fichier javascript externe -
Pour appeler cette fonction dans votre fichier actuel, il suffit d'appeler la fonction comme -
Si vous souhaitez transmettre les paramètres à la fonction, définissez la fonction
Et appelez cette fonction dans votre fichier actuel comme -
la source
$.fn
affectation dans une clause de document prêt est inutileVoici un exemple plus descriptif avec un extrait de CodePen attaché:
1.js
2.js
index.html
production
Essayez cet extrait de code Pen: lien .
la source
Eh bien, je suis tombé sur une autre solution douce.
window['functioName'](params);
la source
Pour ceux qui souhaitent le faire dans Node.js (exécution de scripts côté serveur), une autre option consiste à utiliser
require
etmodule.exports
. Voici un court exemple sur la façon de créer un module et de l'exporter pour l'utiliser ailleurs:file1.js
file2.js
la source