我们可以调用另一个JS文件中的一个JavaScript编写的函数吗?

我们可以调用写在另一个JS文件中的一个JS文件中的函数吗? 任何人都可以帮助我如何调用另一个JS文件的function?

只要包含函数定义的文件在第一次使用函数之前被加载,该函数就可以被调用,就好像它在同一个JS文件中一样。

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> 

另一种方式是行不通的。 正如Stuart Wakefield所正确指出的那样。 另一种方式也将工作。

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> 

尽pipealertOne在调用时被定义,但在内部它使用了一个仍然没有定义的函数( alertNumber )。

上面的答案有一个错误的假设,即包含文件的顺序很重要。 由于在调用alertOne函数之前不会调用alertNumber函数。 只要两个文件都按时间包含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 ); }; 

它只关乎执行时可用的variables和函数。 当一个函数被定义时,它不会执行或parsing任何在其中声明的variables,直到该函数被随后调用。

包含不同的脚本文件与脚本在同一文件中的顺序没有什么不同,除了延迟的脚本:

 <script type="text/javascript" src="myscript.js" defer="defer"></script> 

那么你需要小心。

只要这两个网页都被引用,是的。

你只需调用这些函数,就好像它们在同一个JS文件中一样。

如果包含所有文件,则可以从一个文件调用另一个文件 (如函数,variables,对象等)

js函数和variables,你写在一个.js文件 – 说a.js将可用于其他js文件 – 说b.js只要a.jsb.js包括在文件中使用以下包括机制(如果b.js中的函数调用a.js中的函数,则以相同的顺序)。

 <script language="javascript" src="a.js"> and <script language="javascript" src="b.js"> 

是的你可以 。 您需要将两个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

 function ani1() { alert("1"); ani2(); } 
 JScript2.js 
 function ani2() { alert("2"); } 

你可以从你正在工作的文件中调用另一个js文件中创build的函数。因此,首先你需要将外部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> 

如果要将parameter passing给函数,则将函数定义为 –

 $.fn.functionWithParameters = function(parameter1, parameter2){ alert('Parameters passed are - ' + parameter1 + ' , ' + parameter2); } 

并在你当前的文件中调用这个函数 –

 $('#element').functionWithParameters('some parameter', 'another parameter');