Se podría llamar a la función como si estuviera en el mismo archivo JS siempre que el archivo que contiene la definición de la función se haya cargado antes del primer uso de la función.
Es decir
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>
La otra forma no funcionará.
Como señaló correctamente Stuart Wakefield . La otra forma también funcionará.
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>
Lo que no funcionará sería:
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>
Aunque alertOne
se define al llamarlo, internamente utiliza una función que aún no está definida ( alertNumber
).
La respuesta anterior tiene una suposición incorrecta de que el orden de inclusión de los archivos es importante. Como la función alertNumber no se llama hasta que se llama a la función alertOne. Siempre que ambos archivos estén incluidos en time alertOne se llama el orden de los archivos, no importa:
[HTML]
[JS]
O se puede pedir de la siguiente manera:
[HTML]
[JS]
Pero si fueras a hacer esto:
[HTML]
[JS]
Solo importa que las variables y funciones estén disponibles en el momento de la ejecución. Cuando se define una función, no ejecuta ni resuelve ninguna de las variables declaradas dentro hasta que esa función se llama posteriormente.
La inclusión de diferentes archivos de script no es diferente de la secuencia de comandos en ese orden dentro del mismo archivo, con la excepción de los scripts diferidos:
entonces debes tener cuidado.
fuente
function myfunction() {
y script2:alert();}
no funcionará. Me molesta porque estaba tratando de modularizar un archivo js que es demasiado largo. Ver stackoverflow.com/questions/20311604/…this
contexto, si una de las funciones está en una clase?this
está vinculado en el punto en que se llama la función (a menos quebind
se llame de antemano). Las dos funciones en dos archivos separados no compartirán elthis
contexto automáticamente, en el ejemplo anterior tampoco tiene unthis
contexto, es decir,window
en modo no estricto oundefined
estricto. Puede hacer que la función en el otro script comparta el mismothis
valor asignando la función como miembro del objeto (es decir, dentro del constructorthis.method = myOtherFunc
) o usando bind. Publique una pregunta SO con más detalle si necesita una respuesta más profunda. Saludos, StuartSiempre que la página web haga referencia a ambos, sí.
Simplemente llame a las funciones como si estuvieran en el mismo archivo JS.
fuente
Si se incluyen todos los archivos, puede llamar a las propiedades de un archivo a otro (como función, variable, objeto, etc.)
Las funciones y variables js que escribe en un archivo .js, digamos que a.js estará disponible para otros archivos js, digamos b.js siempre que tanto a.js como b.js se incluyan en el archivo usando lo siguiente: mecanismo (y en el mismo orden si la función en b.js llama a la de a.js).
fuente
ES6: en lugar de incluir muchos archivos js usando
<script>
.html, puede incluir solo un archivo principal, por ejemplo,script.js
usando el atributotype="module"
( soporte ) y dentroscript.js
puede incluir otros archivos:Y en el
script.js
archivo incluye otro archivo como ese:En 'module.js' debe exportar la función / clase que importará
Ejemplo de trabajo aquí .
fuente
sí tu puedes . necesita referirse tanto
JS file
a la.aspx
páginafuente
Puede llamar a la función creada en otro archivo js desde el archivo en el que está trabajando. Entonces, para esto, primero debe agregar el archivo js externo al documento html como-
La función definida en el archivo javascript externo:
Para llamar a esta función en su archivo actual, simplemente llame a la función como -
Si desea pasar los parámetros a la función, defina la función como-
Y llame a esta función en su archivo actual como -
fuente
$.fn
tarea en una cláusula de documento listo no tiene sentidoAquí hay un ejemplo más descriptivo con un fragmento de CodePen adjunto:
1.js
2.js
index.html
salida
Pruebe este fragmento de CodePen: enlace .
fuente
Bueno, encontré otra solución dulce.
window['functioName'](params);
fuente
Para aquellos que quieran hacer esto en Node.js (ejecutar scripts en el lado del servidor), otra opción es usar
require
ymodule.exports
. Aquí hay un breve ejemplo sobre cómo crear un módulo y exportarlo para usarlo en otro lugar:file1.js
file2.js
fuente