2009-03-20 2 views
2

fileAsString 클래스에 fileAsString 메소드를 추가하기 위해 다음 Groovy 코드를 잘라낸 다음, 누군가가 'this'를 정확히 설명 할 수 있습니까? fileAsString 메서드가 호출되는 개체라고 생각했지만 분명히 실제로 대리자가 참조하는 개체입니다.Groovy 메타 프로그래밍에서 'this'

String.metaClass.fileAsString = { 
    this.class.getResourceAsStream(delegate).getText() 
} 

고마워요, 돈

+0

하! 나는 종종 같은 실수를 저지른다. 멋져요! = 자바 스크립트가 있다면 가끔은 나를 위해 좋은 것입니다 있지만. '이'예를 들어, 코드가 클래스 내에서 나타나지 않는 경우를 참조 무엇 – noah

답변

2

새로 정의 된 방법은 폐쇄, 그래서 방법이 정의 때처럼 '이'와 같은 의미를 가질 것이다. 보통 'this'는 아래와 같이 메소드를 정의한 객체를 나타냅니다.

+0

대본에? –

+0

그루비 스크립트 (클래스 groovy.lang.Script를 확장합니다)에서 클래스를 생성합니다. 스크립트에서 'this'는 생성 된 클래스의 인스턴스를 참조합니다. – dstnbrkr