JavaScript:函数从一个Js文件调用到另一个Js文件

时间:2018-05-04 06:42:14

标签: javascript jquery asp.net

我正在使用ASP.netJQuery。 在一个Aspx页面中,我有很多Js页面。 现在我又添加了一个Js文件(比如page1.js),我正在调用一个函数从page1.js到另一个js文件(page2.js),它也包含在同一个Aspx页面中。

当我尝试从Page1Func调用方法(page2.js)时,我收到了未定义的错误消息。

ASPX页面:

  <script src="<%= SomeCommonFunc.GetResolvedUrl("~/Page1.js") %>" type="text/javascript"></script>
  <script src="<%= SomeCommonFunc.GetResolvedUrl("~/Page2.js") %>" type="text/javascript"></script>

Page1.js

function page1Func(){
   //Some code
}

Page2.js

function page2Func(){
   //Some code
   page1Func(); // giving undefined error message
}

所以我这样做了:

function page2Func(){
    var someFunc = Page1Func; //it worked
    someFunc();
}

它工作。我不知道为什么这条消息即将发生。我也试图改变顺序,在ASPX页面中包含Js文件。 如果有人可以帮助我解释这种行为,那就太好了。

P.S:我已经在网上查了一下,但没有得到正确答案。

感谢。

1 个答案:

答案 0 :(得分:2)

只要在第一次使用函数之前加载了包含函数定义的文件,就可以调用该函数,就像它在同一个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>

如果你的代码是这样的,那么就没有机会给出未定义的

以下是Plunker实施