local Man = {}
Man.__index = Man
-- A constructor is a plain function: a dot,
-- the arguments become the fields
function Man.new(name, age)
return setmetatable({
name = name,
age = age,
}, Man)
end
local man = Man.new("Alex", 30)
-- man.name = Alex
-- man.age = 30
-- setmetatable linked the object to the class
local is_man = getmetatable(man) == Man
-- is_man = true
print("man.name = " .. man.name)
print("man.age = " .. man.age)
print("is_man = " .. tostring(is_man))