Lua的面向对象实现和元表metatable有关,下面给出2种代码
1.Lua实现
local Test = {}
Test.__index = Test
Test.A = 0
function Test :create(a)
local tb = {}
setmetatable(tb,Test )
tb.A = a
return tb
end
function Test:print()
print(self.A)
end
return Test
2.由于cocos2d-x 3.5下有对class()的封装,所以在这里又可以这样实现
local Test= class("Test")
Test.A= 0
function Test:create(a)
local tb = {}
setmetatable(tb,Test)
tb.A = a
return tb
end
function Test:print()
print(self.A)
end
测试
local Test1 = require("Test"):create(100)
local Test2 = require("Test"):create(200)
Test1:print()
Test2:print()