javascript - 调用在函数内部定义的函数

标签 javascript function

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

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

function function_two(){
    my_function();
};

有没有办法做类似上面的事情(在 function_two 中调用 my_function,即使它是在 window.onload() 函数中定义的)?在我的实际代码中,它也使用了 raphael.js 库,我试图在 HTML 中编写一个按钮,它使用 onClick 函数调用一个函数(如 function_two)来运行 window.onload() 中定义的函数(像我的函数)。但是控制台显示 my_function 未定义。

最佳答案

正如 Zeychin 和 Trevor 所说,函数的范围是这里的核心问题。我想我会提供另一种处理方式。基本上,您可以将函数设置为更高范围内的变量(即,onload 和 function_two 函数均可访问),同时在 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 - 调用在函数内部定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6784079/

相关文章:

javascript - 显示当前图像时,从阵列内的剩余图像中随机选择

javascript - getElementById 返回空值?

javascript - 返回函数 - 的函数?

C++ if 循环和函数

javascript - 如何从内部访问函数对象?

javascript - 如何使用 Selenium 从没有 ID 的 div 中获取值

javascript - 如何创建子 worker ?

javascript - 如何使用 Bootstrap 3 在下拉列表中选择默认值?

在函数内的堆栈上创建一个结构体,并将其分配给在另一个函数中创建的数组的数组位置

c++ - 在我的函数中删除对 boost::bind 的需要