【发布时间】:2015-07-19 19:04:21
【问题描述】:
以下问题是我的问题:
我想要一个在 lua 中创建新对象的函数,但应该可以扩展它。
function Class(table)
local a = {}
local t = {create = _create, __newindex = function(o,k,v)
if k == "create" then
--getmetatable(o).create = function()
--_create(o)
--v()
--end
-- or just create(v.params)
else
rawset(o,k,v)
end
end,
}
setmetatable(a,t)
t.__index = t
end
function _create(o,...)
return newTable
end
ele = Class:create()
function Class:create( n )
self.name = n
end
ele2 = Class:create("bbbb")
现在 ele2 没有名称,但它应该以给定的字符串作为名称创建一个新对象。
我可以从newindex获取给定值(类型函数)的参数还是可以执行该值?
【问题讨论】:
-
什么是
a?newTable是什么?你给函数元表了吗? (当Class是一个函数时,Class:create是如何工作的?)
标签: function parameters lua