2013-02-15 2 views
0

편집 : 직접 해결되었습니다. @ 있도록이 클래스를 사용하지 않고, 내 객체가 아닌 윈도우래핑 된 coffeescript 범위 - 함수 호출에 변수 값 사용


나는 커피 스크립트 스크립트를 쓰고 있어요 참조한다/ 나는, 수업 시간에 내 코드를 배치하여 작업을했다. 내 자바 스크립트 코드는 anonomous 기능에 싸여 :

(function() { ... }).call(this) 

내가 체크 박스의 목록을 가지고, 그래서 내일, 어제, 다음 주, 다음 달처럼. 사용자는 이들 중 하나 또는 다수를 선택할 수있다. 사용자가 무엇을 선택했는지 확인하는 대신이 체크 박스 클래스 이름 (내일, 다음 주일 ...)을 저장합니다. 내가 가지고있는 클래스 이름을 확인하는 대신 적합한 메서드를 호출하여 클래스 이름에 해당하는 메서드를 만들었습니다. 내 내일()가 전역 범위에 정의 된 경우

나는 이런 식으로 부를 것이다 : 표현은 예를 들어, 클래스 이름을 개최

this[expression]() 

내일.

this.tomorrow = function() { 
     return console.log("I was triggered"); 
    }; 

내일() 이제 전역 범위에 정의 :이 작업을 위해

는이 같은 내 함수를 정의했다. 많은 노력 없이도 전역 범위에서 함수를 정의하지 않는 방법이 있습니까?

+0

의도? 전역 적으로 정의 된 함수가 있고 this가'windows' 객체 인 경우 this [expression]()에 의해 함수를 호출 할 수 있습니다. – Amberlamps

+0

@Amberlamps : coffeescript와 wrapping을 사용하면 전역 범위를 코드화하지 않아도됩니다. – smarty

+0

알아요! 어쩌면 다음 번에 좀 더 정확하게 질문을 표현할 수도 있습니다. 익명 함수로 코드를 래핑하고 어떤 식 으로든 전역 범위를 건드리지 않는다면, 익명 함수 이외의 함수에 어떻게 접근해야합니까? 전역 적으로 액세스 할 수있는 단일 객체를 정의하고 해당 객체 내에서 모든 함수를 정의 할 수 있습니다. – Amberlamps

답변

0

클래스에서 코드를 래핑하여 작업을 수행 했으므로 @/this가 내 객체가 아니라 창을 참조합니다.

@[expression]() 

지금처럼 작동 정확하게 당신의 질문은 무엇