У другого объекта должны присутствовать все те же методы что и у первого объекта.
Для создания объекта тараканы в голове сказали использовать метод метатаблицы __call
Поначалу думал что сделаю что то вроде:
--Здесь всё работает
Object1 = setmetatable({},{
__call = function(self)
return setmetatable({t=1},self)
end
})
Object1.__index = Object1
function Object1:method()
print("method "..self.t)
end
obj = Object1()
obj:method()
--Вот тут уже нет
Object2 = setmetatable(setmetatable({},Object1),{
__call = function(self)
return setmetatable({t=2},self)
end
})
Object2.__index = Object2
function Object2:method2()
self:method()
end
obj = Object2()
obj:method2()
и это будет работать. Но реальность меня огорчила...
У меня есть прототип объекта имеющего свои методы
У другого объекта должны присутствовать все те же методы что и у первого объекта.
Для создания объекта тараканы в голове сказали использовать метод метатаблицы __call
Поначалу думал что сделаю что то вроде:
и это будет работать. Но реальность меня огорчила...
Изменено пользователем JTJagПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах