S
color
", а ты такой пишешь "Color
" и оно автоматически не ругается на это.Ну и чел ругается на отсутствие типизации, которая как бы есть в typescript.
И это исправляется в луа кастомной реализацией классов с перегруженным
__newindex
.Size: a a a
S
color
", а ты такой пишешь "Color
" и оно автоматически не ругается на это.__newindex
.A
КН
AS
S
this
, который все подряд переделывают в self
чтобы хоть как-то определиться)S
AS
this
, который все подряд переделывают в self
чтобы хоть как-то определиться)S
S
local ClassFoo = {}
ClassFoo.__index = ClassFoo
function ClassFoo:new(x, y)
self = setmetatable({}, self)
self.x, self.y = x, y
return self
end
Уже конкретная реализация ООП через метатаблицы. Можно сделать иначе (например, без метатаблиц), и даже кардинально по другому (перегруженные __index
/__newindex
, которые следят за текущим скоупом, приватными/виртуальными полями и множественными родителями). Конкретного стандарта нет, фичи разных реализаций различаются, что хочешь — то и впиливай, балансируя скорость и фичеватость. Можно даже реализовать без прототипов : )Class
, предоставляющее конкретную реализацию ооп на прототипах. Ну и можно нагенерить классов из функций/объектов. Это уже считается deprecated-кастомщиной, и кардинально изменить поведение нельзя.КН
AG
AG
S
S
AS
AS
AG
AS
S
T