2016-10-18 16 views

回答

2

是的,使用:方法調用。

A:C() 

:A.C(A)等效,但它的安全(通過確切的表引用作爲第一個參數)。

既然你定義了一個表的構造函數表達式內A.C方法,你不能使用此語法:

function table:prop 

您必須聲明自己的功能(在你的代碼作爲__self)作爲第一個參數的功能。

A = { 
    B = function() 
     print("I am B") 
    end, 

    C = function(__self) 
     print("I am C\nand") 
     __self.B(); 
    end 
}; 

如果你不想指定__self作爲第一個參數,分配A後確定A.C,這種特殊功能的語法:

function A:C() 
    print("I am C\nand"); 
    self.B(); 
end 

這使得第一個參數是self

+1

這就是我正在尋找的,謝謝 – August

+0

只需等待冷卻時間,直到你可以接受答案。 – August

+1

變量可以是任何東西,而不僅僅是__self。 – warspyking