2016-10-18 7 views

답변

2

예, : 메서드 호출을 사용합니다.

A:C() 

:A.C(A)는 동등하지만, 그것은 (제 1 인수로 정확한 테이블 참조를 전달) 안전하다.

당신은 테이블 생성자 식 내부 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