簡體   English   中英

調用在 function 中定義的 function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM