[javascript] Coffeescript — 자체 시작 익명 함수를 만드는 방법은 무엇입니까?

이것을 coffeescript로 작성하는 방법?

f = (function(){
   // something
})();

팁 주셔서 감사합니다 🙂



답변

괄호 만 사용할 수 있지만 (예 🙂 키워드 (-> foo)()를 사용하여 피할 수 있습니다 do.

do f = -> console.log 'this runs right away'

가장 일반적인 용도 do는 루프에서 변수를 캡처하는 것입니다. 예를 들어

for x in [1..3]
  do (x) ->
    setTimeout (-> console.log x), 1

이 없으면 루프 이후의 do값을 x3 번 인쇄합니다 .


답변

CoffeeScript의 자체 호출 함수에 전달 된 인수를 “별칭”하고 싶다면 다음과 같이 달성하려고합니다.

(function ( global, doc ) {
  // your code in local scope goes here
})( window, document );

그럼 do (window, document) ->그렇게 놔두지 않을 것입니다. 갈 방법은 괄호를 사용하는 것입니다.

(( global, doc ) ->
  # your code here
)( window, document )


답변

커피는 말도 안되게 쉽습니다.

do ->

돌아올 것이다

(function() {})();


답변

또한 do키워드를 기본 함수 매개 변수와 결합하여 재귀 “자체 시작 함수”를 초기 값으로 시드 할 수 있습니다 . 예:

do recursivelyPrint = (a=0) ->
  console.log a
  setTimeout (-> recursivelyPrint a + 1), 1000


답변

사용하려고

do ($ = jQuery) ->


답변

do ->
    #your stuff here

이것은 범위 지정에 유용한 자체 실행 클로저를 생성합니다.


답변

죄송합니다. 해결했습니다.

f = (
    () -> "something"
)()