【发布时间】:2013-06-03 18:52:42
【问题描述】:
对这一切有点困惑;所以这就是我想要做的! 因此有一个定义:
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() 函数的地址,这样在我的 spawn 中我可以执行以下操作:
params.startup() --即实际调用了原来的init函数
【问题讨论】:
-
"因此有一个定义" 这不是一个“定义”。 Lua 没有“定义”。那是一个table,它是一个value。就像函数一样。
-
params.startup()实际上将params引用的值视为一个表,并用字符串startup对其进行索引以获取其值(点运算符)。然后它将值作为函数调用(括号运算符)。然后,该函数将init引用的值作为函数调用。