[javascript] Coffeescript의 매개 변수로 setTimeout을 작성하는 방법

coffeescript에서 아래에 자바 스크립트를 작성하는 방법을 알려주십시오.

setTimeout(function(){
    something(param);
}, 1000);



답변

콜백이 함수의 마지막 인수로 오는 것이 유용한 규칙이라고 생각합니다. 예를 들어 Node.js API의 경우가 일반적입니다. 그래서 그것을 염두에두고 :

delay = (ms, func) -> setTimeout func, ms

delay 1000, -> something param

물론, 이것은 모든 함수에 여분의 함수 호출의 오버 헤드를 추가합니다 setTimeout . 그러나 오늘날 JS 인터프리터에서는 초당 수천 번 수행하지 않는 한 성능 저하가 중요하지 않습니다. (그리고 어쨌든 초당 수천 개의 타임 아웃을 설정하고 있습니까?)

물론보다 간단한 접근 방식은 콜백 이름을 지정하는 것입니다. 어쨌든 더 읽기 쉬운 코드를 생성하는 경향이 있습니다 (jashkenas는이 관용구의 큰 팬입니다).

callback = -> something param
setTimeout callback, 1000


답변

setTimeout ( ->
  something param
), 1000

괄호는 선택 사항이지만 쉼표로 줄을 시작하면 지저분 해 보입니다.


답변

setTimeout ->
  something param
, 1000


답변

이렇게하면 거의 비슷한 번역이됩니다 (@Joel Mueller 덕분에).

setTimeout (-> something param), 1000

익명 함수는 something(param)스 니펫에서와 같이 정의되지 않은 대신 호출 결과를 반환하기 때문에 정확한 번역이 아닙니다 .


답변

나는 이것이 최선의 방법이라고 생각합니다.

setTimeout (-> alert "hi"), 1000


답변

다른 옵션 :

setTimeout(
    -> something param
    1000
)


답변