2010-08-26 217 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);