С параметрами

Классы / Конструкторы

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))