Ответ выше имеет неверное предположение, что порядок включения файлов имеет значение. Поскольку функция alertNumber не вызывается, пока не будет вызвана функция alertOne. Пока оба файла включены по времени, вызывается alertOne, порядок файлов не имеет значения:
[HTML]
<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript">
alertOne( );
</script>
[JS]
// File1.js
function alertNumber( n ) {
alert( n );
};
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// Inline
alertOne( ); // No errors
Или его можно заказать следующим образом:
[HTML]
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript">
alertOne( );
</script>
[JS]
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// File1.js
function alertNumber( n ) {
alert( n );
};
// Inline
alertOne( ); // No errors
Но если бы вы сделали это:
[HTML]
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript">
alertOne( );
</script>
<script type="text/javascript" src="file1.js"></script>
* * Тысяча двадцать-одина [JS] * * одна тысяча двадцать-дв
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// Inline
alertOne( ); // Error: alertNumber is not defined
// File1.js
function alertNumber( n ) {
alert( n );
};
Это имеет значение только для переменных и функций, доступных во время выполнения. Когда функция определена, она не выполняет и не разрешает ни одну из переменных, объявленных внутри, до тех пор, пока эта функция не будет впоследствии вызвана.
Включение различных файлов сценариев ничем не отличается от сценария в том же порядке в одном и том же файле, за исключением отложенных сценариев:
<script type="text/javascript" src="myscript.js" defer="defer"></script>
тогда нужно быть осторожным.