function Class(base,_ator)
local c = {}
if not _ator and type(base) == 'function' then
_ator = base
base = nil
elseif type(base) == 'table' then
for i,v in pairs(base) do
c[i] = v
end
c._base = base
end
local mt = {}
mt.__call = function(classtb_1,...)
local obj ={}
setmetatable(obj,c)
if _ator then
_ator(obj,...)
end
return obj
end
c._ator = _ator
c.is_a = function(self,klass)
local m = getmetatable(self)
while m do
if m == klass then return true end
m = m._base
end
return false
end
setmetatable(c,mt)
return c
end
uj5u.com熱心網友回復:
這個是模擬面向對像編程的東西local FaterClass = Class() --定義一個父類
local ChildClass = Class(FaterClass)--定義一個子類,繼承自父類
local childObj = ChildClass()--new一個子類對像出來
這種面向對像和java,c++一樣的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/64390.html
標籤:Unity3D
上一篇:cocos2dx的定時器回呼函式如何使用lamda運算式?
下一篇:發個免費的谷歌地圖下載器
