2013-01-19 122 views
0
function google(){ 
    var kevin = "hello"; 
    john(kevin); 
} 

function john(arg){ 
    var mark = arg; 
    function yahoo(mark){ 
      alert(mark); 
    } 

} 

現在,當我打電話給我的功能google()爲什麼它沒有在雅虎呼叫警報。傳遞內部函數內部對象

回答

2

你不叫yahoo。你需要這樣做:

function john(arg){ 
    var mark = arg; 
    function yahoo(mark){ 
      alert(mark); 
    } 

    yahoo(mark); // <------- 
} 

你也可以重構你的代碼做這樣的事情:

function john(arg){ 
    var mark = arg; 

    (function yahoo(){ 
      alert(mark); 
    })(); 
} 
+0

我需要一個變量標記,或者我可以直接傳遞參數。 – Kevin

+0

如果你願意,你可以通過arg。 – Lloyd

+1

@Lloyd您的語法在重構的案例中無效。自執行功能應該用圓括號包裝。 – VisioN

1

因爲john內沒有yahoo功能的呼叫。

function john(arg) { 
    var mark = arg; 
    function yahoo(mark) { 
      alert(mark); 
    } 
    yahoo(mark); // <-- call 
} 
1

你們定義功能yahoo,但從來沒有真正調用它。試試這個:

function google(){ 
    var kevin = "hello"; 
    john(kevin); 
} 

function john(arg){ 
    var mark = arg; 
    yahoo(mark); 
    function yahoo(mark){ 
      alert(mark); 
    }  
}