const
(только для C ++) Для людей, прибывающих с C, может показаться неожиданным, что в C ++ глобальные переменные const
имеют внутренние (или статические) связь. В C это не так, поскольку все глобальные переменные неявно extern
(т.е. когда отсутствует ключевое слово static
).
Пример:
// file1.cpp
const int test = 5; // in C++ same as "static const int test = 5"
int test2 = 5;
// file2.cpp
extern const int test;
extern int test2;
void foo()
{
int x = test; // linker error in C++ , no error in C
int y = test2; // no problem
}
correct would использовать файл заголовка и включить его в file2.cpp и file1.cpp
extern const int test;
extern int test2;
. В качестве альтернативы можно было бы объявить переменную const
в файле file1.cpp с явным extern
Функция может вызываться так, как если бы она находилась в том же файле JS, пока файл, содержащий определение функции, загружается до первого использования функции.
Ie
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>
Другой способ не будет работать. Как правильно указал Стюарт Уэйкфилд . Другой способ также будет работать.
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>
Что не будет работать:
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>
Поскольку, хотя alertOne
определен при вызове, внутри он использует функцию, которая еще не определена (alertNumber
).
да, вы можете. вам нужно отнести обе JS file
к странице .aspx
<script language="javascript" type="text/javascript" src="JScript1.js">
</script>
<script language="javascript" type="text/javascript" src="JScript2.js">
</script>
JScript1.js
blockquote>function ani1() { alert("1"); ani2(); }
blockquote >JScript2.js
function ani2() { alert("2"); }
Пока обе страницы ссылаются на веб-страницу, да.
Вы просто вызываете функции так, как будто они находятся в одном JS-файле.
Если все файлы включены, вы можете вызывать свойства из одного файла в другой (например, функция, переменная, объект и т. д.)
Функции js и переменные, которые вы пишете в одном файле .js, - скажем a.js будет доступен для других js-файлов - скажем b.js , если оба a.js и b.js включены в файл, используя следующий механизм include (и в том же порядке, если функция в b.js вызывает одно в a.js).
<script language="javascript" src="a.js"> and
<script language="javascript" src="b.js">
Вы можете вызвать функцию, созданную в другом файле js из файла, в котором вы работаете. Поэтому для этого сначала вам нужно добавить внешний файл js в html-документ как -
<html>
<head>
<script type="text/javascript" src='path/to/external/js'></script>
</head>
<body>
........
. функция, определенная во внешнем файле javascript -
$.fn.yourFunctionName = function(){
alert('function called succesfully for - ' + $(this).html() );
}
Чтобы вызвать эту функцию в текущем файле, просто вызовите функцию как -
......
<script type="text/javascript">
$(function(){
$('#element').yourFunctionName();
});
</script>
Если вы хотите передать параметры к функции, затем определите функцию as -
$.fn.functionWithParameters = function(parameter1, parameter2){
alert('Parameters passed are - ' + parameter1 + ' , ' + parameter2);
}
И вызовите эту функцию в вашем текущем файле как -
$('#element').functionWithParameters('some parameter', 'another parameter');
В приведенном выше ответе неверное предположение о том, что порядок включения файлов имеет значение. Поскольку функция 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>
, тогда вам нужно быть осторожным .