What's wrong with this ?
_G.Base = _G.Base or { new = function(s,...) local o = { } setmetatable(o,s) s.__index = s s:initialise(...) return o end, initialise = function() end }
This is my one line OOP. Like an idiot I modified it slightly but didn't test it thoroughly.
Answer : the initialiser which I added, s:initialise(...) works perfectly - except it initialises the passed in prototype (s) not the newly created object (o), should be.
So instead of nicely constructing a new object, it "reconstructed" the prototype.
_G.Base = _G.Base or { new = function(s,...) local o = { } setmetatable(o,s) s.__index = s o:initialise(...) return o end, initialise = function() end }
No comments:
Post a Comment