Javascript 调用';在函数中定义的

Javascript 调用';在函数中定义的,javascript,function,Javascript,Function,*有没有办法调用javaSCRIPT中另一个函数中定义的函数?例如: window.onload() = function() { function my_function(){ print("Blah"); }; }; function function_two(){ my_function(); }; 有没有一种方法可以执行上述操作(调用函数2中的my_函数,即使它是在window.onload()函数中定义的)?在我的实际代码(也使用raphae

*有没有办法调用javaSCRIPT中另一个函数中定义的函数?例如:

window.onload() = function() {
    function my_function(){
        print("Blah");
    };
};

function function_two(){
    my_function();
};

有没有一种方法可以执行上述操作(调用函数2中的my_函数,即使它是在window.onload()函数中定义的)?在我的实际代码(也使用raphael.js库)中,我尝试在HTML中编写一个按钮,它使用onClick函数调用一个函数(如函数\ two),该函数运行window.onload()中定义的函数(如我的\函数)。但是,控制台表示my_函数未定义

你不能做你要求做的事。
window.onload = function() {
    my_function()
};

function my_function(){
    alert("Blah");
};

function function_two(){
    my_function();
};
函数
my\u function()
的作用域仅在匿名函数
function()
中。当该方法未执行时,它会超出范围,因此这是不可能的。
Trevor的答案是实现这一点的方法。

正如Zeychin和Trevor所说,功能的范围是这里的核心问题。我想我会提供另一种处理方法。基本上,您可以将函数设置为更高范围内的变量(即,onload和function_两个函数都可以访问),同时在onload函数中定义它,就像您最初所做的那样:

var myFunction; //This is the placeholder which sets the scope

window.onload() = function() {
   myFunction = function() { //Assign the function to the myFunction variable
      print('blah');
   }
}

function function_two() {
   myFunction();
}

如果您在onload事件中只知道myFunction所需的信息,这可能会很方便。

我无法让这个示例工作。它说“JavaScript错误:未捕获的TypeError:对象[object object]的属性'myFunction'不是函数”Rodrigo-该错误表明您正在调用'myFunction'作为另一个对象的属性/方法。你可以问另一个问题或者把代码作为JSFIDLE发布吗?还有,Rodrigo,在这种情况下否决答案并不是否决的目的。。。特别是当你需要帮助解决你的具体问题时。看看这个(以及其他类似的代码):代码就在这里:它说“uncaughtreferenceerror:Invalid left-side in assignment”,可能是因为“window.onload”后面的“()”。我还试图将“打印('blah')更改为“警报('blah')”,但仍然无法运行。