2011-08-19 6 views
2

중첩 된 개체 ('동작') 내에서 인스턴스 변수에 액세스하려고합니다. 내가 찾을 수있는 유일한 해결 방법은 로컬 var ('_')를 사용하여 부모 개체를 나타내는 것입니다.Coffeescript : 인스턴스 클래스 메서드를 다루는 더 나은 방법

Class Mover 
... 
Constructor() => 
    _ = this 
    @mode = "wave" 
    @action= { 

     wave: -> 
      _.x = _.ox 
      _.y = _.oy = Math.cos(window.G.time * _.speed + _.c + _.vary) * _.amp - _.amp * .5 
      return 

     jump: -> 
      _.y = _.oy = Math.min(0,Math.cos(window.G.time*_.speed + _.c * _.vary)) * _.amp - _.amp * .5 
      _.x = _.ox 
      return 

    @loop => 
     @action[@mode]() 

답변

4

과 같이 액션 객체의 내부에 지방 화살표 (=>)를 사용하여보십시오 :

wave: => 
    @x = @ox 
    @y = @oy = Math.cos(window.G.time * @speed + @c + @vary) * @amp - @amp * .5 
    return 
+0

환호! 카페인을 사랑해야 해. – miketucker

관련 문제