[英]How to call a function from outside the main function?
我目前正在尝试学习javascript,我想实现的目标是从main函数外部调用一个函数。 为了更好的主意,我保留了当前正在执行的代码。 如果有人可以向我解释为什么此功能不能正常工作,我将非常感激。 先感谢您。
function One_Main(){ function Alpha(){ console.log("Alpha"); } } One_Main(); function Two_Main(){ Alpha(); } Two_Main();
Alpha()在One_Main的范围内,您无法从全局范围内看到它。 要从One_Main外部调用Alpha(),您需要在该函数外部声明它。
function Alpha(){
console.log("Alpha");
}
function One_Main(){
Alpha();
}
One_Main();
function Two_Main(){
Alpha();
}
Two_Main();
您可能需要阅读有关javascript范围界定的信息,以了解问题所在。 https://scotch.io/tutorials/understanding-scope-in-javascript
Alpha
函数在Two_Main
函数内部不可见
PS:调试对于了解有关该错误的更多信息很有用。 在Chrome中,您可以右键单击并选择检查元素,然后在控制台上调试JavaScript。
我不知道您正在学习什么教程,也许您正在阅读有关currying
方法的信息,如果是这样,您可以进行以下操作:
function One_Main(){ function Alpha(){ console.log("Alpha"); } return Alpha; } One_Main(); function Two_Main(){ One_Main()(); } Two_Main();
它不起作用,因为Alpha
在One_Main
之外不可见。
要使其可见,可以将One_Main
定义为对象,然后将Alpha
One_Main
的属性。
要修复您的代码,请执行以下操作:
function One_Main() { this.Alpha = function() { console.log("Alpha"); } } // Make it visible Alpha = new One_Main().Alpha; function Two_Main() { Alpha(); } Two_Main();
class One_Main { constructor() {} static Alpha() { console.log("Alpha"); } } // Make it visible Alpha = One_Main.Alpha; function Two_Main() { Alpha(); } Two_Main();
function One_Main() {} One_Main.Alpha = function() { console.log("Alpha"); } // Make it visible Alpha = One_Main.Alpha; function Two_Main() { Alpha(); } Two_Main();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.