[英]Calling a function that's defined inside a function
*有沒有辦法調用 javaSCRIPT 中另一個 function 中定義的 function? 例如:
window.onload() = function() {
function my_function(){
print("Blah");
};
};
function function_two(){
my_function();
};
有沒有辦法做類似上面的事情(在 function_two 中調用 my_function,即使它是在 window.onload() 函數中定義的)? In my actual code, which also uses the raphael.js library, I'm trying to write a button in HTML, which using the onClick function, calls a function(like function_two) that runs the function defined in window.onload() (像我的函數)。 但是控制台說 my_function 是未定義的。
正如 Zeychin 和 Trevor 所說,function 的 scope 是這里的核心問題。 我想我會提供另一種處理方式。 基本上,您可以將 function 設置為位於更高 scope 中的變量(即, onload 和 function_two 函數都可以訪問),同時在 onload ZC1C425268E68385D1AB5074C 中定義它最初有:
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 所需的信息,這可能會很方便。
window.onload = function() {
my_function()
};
function my_function(){
alert("Blah");
};
function function_two(){
my_function();
};
你不能做你要求做的事。 function my_function()
的 scope 僅在匿名 function, function()
內。 當方法未執行時,它會脫離 scope,因此這是不可能的。 特雷弗的回答是做到這一點的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.