A função pode ser chamada como se estivesse no mesmo arquivo JS, desde que o arquivo que contém a definição da função tenha sido carregado antes do primeiro uso da função.
Ou seja,
Arquivo1.js
function alertNumber(number) {
alert(number);
}
Arquivo2.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>
A outra maneira não funcionará.
Como corretamente apontado por Stuart Wakefield . A outra maneira também 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>
O que não vai funcionar seria:
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>
Embora alertOne
seja definido ao chamá-lo, internamente ele usa uma função que ainda não está definida ( alertNumber
).
A resposta acima pressupõe incorretamente que a ordem de inclusão dos arquivos é importante. Como a função alertNumber não é chamada até que a função alertOne seja chamada. Desde que os dois arquivos sejam incluídos por tempo, alertOne é chamado de ordem dos arquivos, não importa:
[HTML]
[JS]
Ou pode ser encomendado da seguinte maneira:
[HTML]
[JS]
Mas se você fizer isso:
[HTML]
[JS]
É importante apenas que as variáveis e funções estejam disponíveis no momento da execução. Quando uma função é definida, ela não executa nem resolve nenhuma das variáveis declaradas dentro até que essa função seja chamada posteriormente.
A inclusão de diferentes arquivos de script não é diferente do script nessa ordem no mesmo arquivo, com exceção dos scripts adiados:
então você precisa ter cuidado.
fonte
function myfunction() {
e script2:alert();}
não vai funcionar. Isso me incomoda porque eu estava tentando modularizar um arquivo js que é muito longo. Veja stackoverflow.com/questions/20311604/…this
contexto, se uma das funções estiver em uma classe?this
é vinculado no ponto em que a função é chamada (a menos quebind
seja chamada anteriormente). As duas funções em dois arquivos separados não compartilharão othis
contexto automaticamente; no exemplo acima, nem umthis
contexto, ou seja,window
no modo não estrito ouundefined
estrito. Você pode fazer com que a função no outro script compartilhe o mesmothis
valor, atribuindo a função como um membro do objeto (ou seja, dentro do construtorthis.method = myOtherFunc
) ou usando bind. Poste uma pergunta SO com mais detalhes se precisar de uma resposta mais aprofundada. Cheers, StuartContanto que ambos sejam referenciados pela página da web, sim.
Você simplesmente chama as funções como se elas estivessem no mesmo arquivo JS.
fonte
Se todos os arquivos estiverem incluídos, você poderá chamar propriedades de um arquivo para outro (como função, variável, objeto etc.)
As funções e variáveis js que você escreve em um arquivo .js - digamos, a.js estarão disponíveis para outros arquivos js - digamos b.js , desde que a.js e b.js estejam incluídos no arquivo usando o seguinte mecanismo (e na mesma ordem se a função em b.js chamar a função em a.js).
fonte
ES6: Em vez de incluir muitos arquivos js usando
<script>
.html, você pode incluir apenas um arquivo principal, por exemplo,script.js
usando o atributotype="module"
( suporte ) e, dentro,script.js
você pode incluir outros arquivos:E no
script.js
arquivo inclua outro arquivo como esse:Em 'module.js', você deve exportar a função / classe que importará
Exemplo de trabalho aqui .
fonte
sim você pode . você precisa consultar
JS file
a.aspx
páginafonte
Você pode chamar a função criada em outro arquivo js a partir do arquivo em que está trabalhando. Portanto, para isso, primeiro você precisa adicionar o arquivo js externo ao documento html, como
A função definida no arquivo javascript externo -
Para chamar essa função no seu arquivo atual, basta chamar a função como -
Se você deseja passar os parâmetros para a função, defina a função como
E chame esta função no seu arquivo atual como -
fonte
$.fn
atribuição de uma cláusula pronto documento é inútilAqui está um exemplo mais descritivo com um trecho de código CodePen anexado:
1.js
2.js
index.html
resultado
Experimente este snippet CodePen: link .
fonte
Bem, me deparei com outra solução doce.
window['functioName'](params);
fonte
Para aqueles que querem fazer isso no Node.js (executando scripts no lado do servidor), outra opção é usar
require
emodule.exports
. Aqui está um pequeno exemplo de como criar um módulo e exportá-lo para uso em outros lugares:file1.js
file2.js
fonte