0
CoffeeScript에서 @를 사용하는 것과 혼동 스럽습니다. 나는이 일 것으로 예상하지만 그렇지 않습니다 - 반면에CoffeeScript 클래스 - @ and this
obj=new class
@x:5
getX:->return @x
alert obj.getX() # undefined
을 우리가 @x:5
에서 @
, 그때 어떻게 든 작동 제거하는 경우 -
obj=new class
x:5
getX:->return @x
alert obj.getX() # 5
내가 @x 생각이 비슷합니다 .x하지만 두 번째 경우에는 @x를 정의하지 않았습니다. 왜 작동합니까?
x:5
대신 @x:5
을 언제 정의해야합니까?
그래서 클래스 선언의'x'는 인스턴스 변수이지만 메소드에서 그것을 참조하려면'@x'를 사용해야합니다. 나는 약간 혼란 스럽다. – KalEl
* 대부분의 * 언어가 작동하는 방식입니다. 'this'가 실제로 값을 가진 객체의 컨텍스트에서 평가되는 메소드에 실제로있을 때까지는'this'를 사용하지 마십시오. 메소드를 정의하기 위해'getX : -> '를 사용 하겠지만,'obj' 내에서는 * @getX()를 사용합니다. '@getX : -''...를 정의하려고하지 않겠습니까? – meagar
인스턴스 변수도'this'로 연결하면 안됩니까? 만일 구문이'@y : 6'이라면'y'가'this'에 묶여 있기 때문에 이해하기가 더 쉬울 것입니다. – KalEl