lua虽然原生面向对象,不过它提供了一些功能,使得我们很容易模拟出对象
云风以前也实现过一次,代码有点复杂,我想重新实现一些。
目标
实现一个Class 函数,它接收一个构造函数,然后返回一个生成器,每次调用这个生成器可以生成一个新的对象。
具体用法如下:
package.path=package.path..";./code/luagy/?.lua;./luagy/?.lua"
Class=require("grammar.class")
baseclass=Class(function (self,x) --构造函数
self.x=x
print ("baseclass init ")
self:fn(x)
end
)
baseclass.level=1 --属性
function baseclass:fn(x) --方法
print(