luaの中のselfの役割

684 ワード

luaの中のselfの役割
selfは実はJava、C++の中のthisの対象に相当します。コードを見ます。
a = {x = 3, y = 4}  
  
a.__index = function(table, key)  
                print("__index")  
                return a[key]  
            end  
    -- :  
    --  ,          self  
    -- ,         self  
--[[   
function a.new(self, o)  
    o = o or {}  
    print("new")  
    setmetatable(o, self)  
    return o  
end  
]]  
  
function a.new(o)  
    o = o or {}  
    print("new")  
    setmetatable(o, a)  
    return o  
end  
  
--            
              
local b = a:new() --       a.new(a, {})  
  
print(getmetatable(b))  
              
print(b.x)