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的好消息,如果您在自动化测试领域,那么使用这个库的实践应该对您有用。