2013-06-04 51 views

回答

1
function(data) { 
     showlist(data); 
    } 

要傳遞的一個匿名函數手段

showlist(data) 

表示您致電showList(data)並將返回值傳遞給函數。 如果你要正確地使用你的第二個情況下,解決這個問題是這樣的:

$('#someid').click(function() { 
    getdata('listing' , showlist, 'string' , 1); 
}); 
+0

有沒有第二個例子的方法,所以'getdata'知道第二個參數是一個匿名函數並執行它? – MegaNairda

+0

@MegaNairda:查看我更新的答案 –

+0

儘管我不能使用'data'參數。 – MegaNairda

1

這是行不通的,因爲getdata問一個函數作爲第二個參數。在第二個示例中,您正在執行函數(並傳遞其返回值),而不是傳遞函數本身。

,如果你寫

$('#someid').click(function() { 
    getdata('listing' , showlist, 'string' , 1); 
}); 

沒有括號()它仍然有效,但正如你所看到的,你不能再通過data參數一起功能showlist

+0

我看,現在我知道爲什麼了一些功能,即使沒有'函數(運行正常){...}'因爲他們沒有任何參數。 – MegaNairda

0

因爲第一是傳遞函數作爲getdata的第二個參數,而第二個則傳遞調用函數的結果。

你可以寫第二個正確的

$('#someid').click(function() { 
    getdata('listing' , showlist, 'string' , 1); 
}); 

我們不再調用showlist這裏,而讓getdata稍後調用它。

1

在第二個示例中,您正在執行showlist(data)並將其結果值作爲getdata()參數。

你可以想象,這:

getdata('listing' , showlist(data), 'string' , 1); 

就是一個邏輯等價的:

var temp = showlist(data); 
getdata('listing', temp, 'string', 1); 
相關問題