Lua/Corona - 如何将函数作为参数传递然后调用该函数

fun*_*ing 1 lua function coronasdk

我试图将一个函数作为参数传递给另一个函数.

高级别我有代码创建一个弹出窗口.当我用新文本更新弹出窗口时,我还想更新用户单击弹出窗口时发生的操作.例如,我第一次更新弹出窗口时,我可能会将Action更改为再次使用新文本显示弹出窗口.当用户点击第二个时

下面是一些示例代码来说明这个概念

function doSomething()
   print("this is a sample function")
end

function createPopup()
    local popup = display.newRect  ... create some display object
    function popup:close()
        popup.isVisible = false
     end
    function popup:update(options)
        if options.action then
            function dg:touch(e)

                 -- do the action which is passed as options.action

            end
        end
    end
    popup:addEventListener("touch",popup)
    return popup
end

local mypopup = createPopup()

mypopup:update({action = doSomething()})
Run Code Online (Sandbox Code Playgroud)

Nav*_*yle 6

你可以这样称呼它

function doSomething()
   print("this is a sample function")
end

function createPopup()
    local popup = display.newRect  ... create some display object
    function popup:close()
        popup.isVisible = false
     end
    function popup:update(options)
        if options.action then
            function dg:touch(e)
                options.action() -- This is how you call the function
            end
        end
    end
    popup:addEventListener("touch",popup)
    return popup
end

local mypopup = createPopup()

mypopup:update({action = doSomething})
Run Code Online (Sandbox Code Playgroud)