2013-06-03 125 views
-12

我有兩個函數,並且試圖從第二個函數返回一些東西。不知道我做錯了什麼。我不斷收到undefined的警報。從函數返回到另一個javascript

function a(){ 
    var testMe = b("hello"); 
    alert(testMe); 
} 

function b(theVar){ 
    var returnVar = theVar; 
    return returnVar; 
} 
+5

工作正常,我。當我調用'a()'時,除非你沒有談論'a'中的警報。 – epascarello

+0

它適合我。請發佈[JSFiddle](http://jsfiddle.net)。 – Doorknob

+2

顯示你如何調用功能 – Curt

回答

2

,你可以在這裏看到,正在工作: http://jsfiddle.net/hCGu8/

CODE

function a(){ 
    var testMe = b("hello"); 
    alert(testMe); 
} 

function b(theVar){ 
    var returnVar = theVar + " returned"; 
    return returnVar; 
} 

a(); 
+2

誰是downvoting,至少解釋爲什麼。 – BeNdErR

+5

我想這是因爲這只是OP問題的一個副本,說一切正常。我認爲OP的問題在別的地方。 – andlrc

+0

由SeeleyBoothe提供的數據,解決方案是一切正常.. – BeNdErR

0

這聲音我的權利......事實上,我可要提醒有「你好」:

function a(){ 
    var testMe = b("hello"); 
    alert(testMe); 
} 

function b(theVar){ 
    var returnVar = theVar; 
    return returnVar; 
} 

a(); 

http://jsfiddle.net/u7zPY/

+0

是的。我也是這樣做的。同樣的結果。 –

+0

代碼沒有問題。 – crush

0

你的問題主題說「從功能返回」和你的標籤提到jQuery,而問題中的代碼正常工作。

我的工作,你已經太遠減少您的測試案例,並從中取出這個問題的假設(未來,請測試您減少測試案例,以確保他們仍然說明問題!)和你居然有這樣的事情:

function a() { 
    var result = jQuery('foo').on('click', function() { return 1; }); 
    //       ^^ This being the on function 
} 

...你想result等於1

這是不可能的。

on只是指定一個事件處理程序,稍後運行。在事件發生之前,a的執行將結束。您不能將任何事件從事件處理程序返回給分配它的函數。

您可以使用回調,在該回調中您可以定義一個函數,以在數據可用時運行。這部作品在完全相同的是,你傳遞的第二個參數on功能:

function a(callback) { 
    var result = jQuery('foo').on('click', function() { callback(1); }); 
} 

a(function (result) { alert(result); }); 
相關問題