2010-08-26 242 views
2

這是我的事件,你可以看到我想發送一個函數作爲參數。作爲參數傳遞一個函數?

onclick="deleteItems('image', 'size', function(){GetImageSize();})" 

刪除函數在一個js文件中。在我的js文件中,我想調用我的GetImageSize()函數。

var deleteItems = function(module, controller, callback) { 
    callback(); // ??????????  
} 

我想這樣做,所以我可以重建我的表,當我的ajax調用完成。

希望你們能幫助我

問候ORVAR

+0

僅供參考,星號(*)不是真正的代碼。它應該工作,如果你只是刪除它們。或者你可以做如下所述。 – 2010-08-26 16:30:05

+0

@Anthony:我刪除了星號。我想OP只是想讓它們斜體。 – 2010-08-26 16:32:52

回答

3

你可以參照的功能,而無需調用它 - 只是不使用結束括號。 parens意味着你正在調用這個函數。在將函數作爲回調函數傳遞給另一個函數的情況下,您希望關閉這些parens。 (你不需要它周圍的匿名函數聲明。)它應該閱讀:

onclick="deleteItems('image', 'size', GetImageSize);" 
3

JavaScript函數是first class objects。您可以將函數存儲在變量中,並將它們作爲參數傳遞給函數。每個功能實際上都是一個Function對象。

因此,如果你有一個GetImageSize()功能,你可以簡單地把它傳遞給deleteItems()功能就像任何其他變量:

deleteItems('image', 'size', GetImageSize);