我喜欢使用嵌套函数,但是如何处理这样的事情:
addEvent("onQuestion", function() body end)
我想在同一个函数中执行类似removeEvent
的操作,但它需要将函数作为第二个参数
addEvent("onQuestion", function()
do..some..stuff
removeEvent("onQuestion", thisFunction)
end)
如果removeEvent
通过提供确切的函数来识别要删除的特定事件函数,那么这就是你必须要做的。所以函数需要存储在某个地方,以便函数可以将它传递给removeEvent
。
通常看起来像这样:
local function eventFunc()
do..some..stuff
removeEvent("onQuestion", eventFunc)
end
addEvent("onQuestion", eventFunc)
如果您想要更通用的解决方案,可以创建一个addSelfRemoveEvent
包装函数:
function addSelfRemoveEvent(eventName, func)
local outer function()
func()
removeEvent(eventName, outer)
end
addEvent(eventName, outer)
end