*有没有办法调用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)。但是控制台说my_function是未定义的。
答案 0 :(得分:12)
正如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所需的信息,这可能会很方便。
答案 1 :(得分:3)
window.onload = function() {
my_function()
};
function my_function(){
alert("Blah");
};
function function_two(){
my_function();
};
答案 2 :(得分:3)
你不能做你要做的事。
函数my_function()
的范围仅在匿名函数function()
内。当方法未执行时,它不在范围内,因此这是不可能的。
特雷弗的答案是这样做的方法。