函数在两个或多个脚本之间访问

时间:2012-08-21 06:14:50

标签: javascript jquery html function scope

我有两个脚本,我需要在script2中使用script1函数。什么是最好的方法,是否有任何简化使用原型来访问更多脚本中的功能。我正在使用jquery。

SCRIPT1

$(function(){
 function  process(){
// some code
}
})

SCRIPT2

$(function(){

// I would like to use the process function here

}

4 个答案:

答案 0 :(得分:1)

您可以使用javascript函数作为变量。所以,请重新阅读有关变量的相同内容的问题 - Unable to access variable

所以,只需这样做,您的功能将在全球范围内提供。

答案 1 :(得分:1)

Sample.html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD>
    <script type="text/javascript" charset="utf-8" src="Script1.js" ></script>
    <script type="text/javascript" charset="utf-8" src="Script2.js" ></script>
    <script>
    </script>
    <BODY onload='calling();'>
    </BODY>
    </HTML>

Scrip1.jc

function call(){
    alert("Hi i am called from script2");
}

Scrip2.js

function calling(){
    call();
}

希望这对你有所帮助。

答案 2 :(得分:1)

只需将函数声明移到ready事件处理程序之外,即可使其全局可用。

答案 3 :(得分:0)

另一个想法:使用对象:

var Ob = {
   process: function(callback) {
     callback();
   }
}

SCRIPT1

$(function(){
 Ob.process(function(){
      ... // code
   });
});

脚本2(做同样的)

$(function(){
 Ob.process(function(){
      ... //another code
   });
});

如果您使用相同的process功能(意味着相同的主体内容,在两个脚本中都做同样的事情)那么

var Ob = {
   process: function() {
     ...//put code
   }
}

SCRIPT1

$(function(){
 Ob.process();
});

脚本2(做同样的)

$(function(){
 Ob.process();
});