Javascript 如何使用另一个.js文件中的函数?

Javascript 如何使用另一个.js文件中的函数?,javascript,jquery,function,getscript,Javascript,Jquery,Function,Getscript,以下是我的代码的简化版本: // script1.js $(document).ready(function(){ . . function myfunc(){ ... } . . }); // script2.js $(document).ready(function(){ . . //doesn't work $.getScript("./script1.js"); // anyway I need to c

以下是我的代码的简化版本:

// script1.js
$(document).ready(function(){
    .
    .
    function myfunc(){ ... }
    .
    .
});


// script2.js
$(document).ready(function(){
    .
    .
    //doesn't work
    $.getScript("./script1.js");
    // anyway I need to call myfunc() here ... how can I access it?
    .
    .
});

如您所见,我使用了
$.getScript()
来要求
scscript1.js
文件,但仍然没有定义
myfunc()
。我如何处理这个问题?

尝试使用绝对路径。例如。/script1.js

试试:

var myfunc=null;
// script1.js
$(document).ready(function(){
    .
    .
    myfunc = function (){ ... }
    .
    .
});


// script2.js
$(document).ready(function(){
    .
    .
myfunc();
.
});
$(document).ready(function(){
  test.myfunc();
});
//util.js

var test = (function (){
return {
myfunc : function (){ ... }
}
})();
//script1.js

$(document).ready(function(){
  test.myfunc();
});
//脚本2.js

$(document).ready(function(){
   // $.getScript("./script1.js");
   test.myfunc()
});
在你的html中,你应该把这个顺序

<script src="util.js"></script>
<script src="script1.js"></script>
<script src="script2.js"></script>

如您所见,我使用了$.getScript()来要求SCcript 1.js文件, 但是仍然没有定义myfunc()。我怎么办

myfunc
是在
document.ready
事件中定义的,并且不是全局公开的,因此您不能在不在此document ready事件中的另一个函数中使用该函数

您需要全局导出此函数在document.ready事件外部定义它

全球导出功能

$(document).ready(function(){
    .
    .
    function myfunc(){ ... }
    window.myfunc = myfunc; //this line added here
    .
    .
});
在外部定义它

$(document).ready(function(){
    .
    .

    .
    .
});
function myfunc(){ ... }

通过放置
window.myfunc=myfunc,全局定义
myfunc
紧跟在myfunc定义之后。将我的函数放在一个模块中,并在两个脚本中导入。您的方法可能与@gurvinder372重复。。如果你写了一个答案,我会接受它作为一个被接受的答案。虽然这个代码片段可以解决这个问题,但确实有助于提高你文章的质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码建议的原因。另外,作为与您的咨询(js专家),有一个名为nighmare.js的库,您建议我学习它吗?与react.js相比,这是一件很棒的事情吗?@stack抱歉,我以前都没用过。然而,我听说了关于梦魇EJS的好消息,如果您在自动化测试领域,那么使用这个库的实践应该对您有用。