Reputation: 41757
I noticed a lua module setting the returned table's __index
as itself
local M = {
_VERSION = "1.0.0"
}
M.__index = M
function M.do()
end
return M
What does setting a table's __index
as itself accomplish?
Later, you would use the module
local m = require("m")
m.do()
Upvotes: 4
Views: 562
Reputation: 72312
It is usually done to avoid creating a separate metatable to be used in objects created by the library:
function M.new()
return setmetatable({},M)
end
I do this all the time in my libraries. It is somewhat lazy.
Upvotes: 3