这一切使我感到困惑;所以这就是我想要做的!
因此有一个def:
block_basic_DEF =
{
image = "button.png",
name = "basic block",
obj_table = this_obj_table.common_objects_table,
startup = function() init(), <----- This is the problem
}
在另一个文件中,我可以访问:
function spawn(params)
local obj = display.newImage(params.image)
-- etc.
在该
block_basic_DEF
中,我希望传递init()
函数的地址,以便在生成时可以执行以下操作:params.startup()
-即实际调用原始的init函数
最佳答案
Lua函数只是值,您可以使用它们的名称来分配它们,而无需使用括号:
function init()
print("init");
end
block = {
startup = init
}
然后像常规函数一样调用它
block.startup()
它接近OOP,但实际上就像函数是正常值一样简单。
如果您想要更类似于lambda的东西,则必须拼写整个函数,省略名称:
startup = function() print("init") end
关于function - 如何在Lua中将函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984540/