2015-01-07 4 views
4

내 친구가 CoffeeScript 코드에 ($ document).on을 사용 중입니다. 이것이 일반적인 $(document).on과 다른가요? 그렇다면 어떤 방식으로합니까?

+1

그것은 단지 괄호 함수 호출이다; 즉 CoffeeScript의'($ (document)). on'에 해당합니다. – Pointy

+1

@Pointy 이렇게하면 파일 크기가 커지니까요? – jona

+2

저는 CoffeeScript 사람이 아니지만'.' 표현식이 제대로 작동하도록해야 할 수도 있습니다. 즉,'$ document.on'은 여분의'()'없이 잘못 해석 될 수 있습니다. (그건 그렇고, 내가 CoffeeScript 사람이 아니라는 이유의 목록에있을 것입니다 :) – Pointy

답변

5

CoffeeScript의 경우 인수가있는 함수를 호출 할 때는 괄호가 필요하지 않습니다. 예를 들어

:

console.log("Hello") // Hello 
console.log "Hello" // Hello 

그래서, 이러한 동일하다는 것을 고려하십시오

$document = $(document) 
$document = $ document 
$document = ($ document) 

그러나 괄호는 특정 상황에서 필요한 의미를 명확하게 할 수있다.

예를 들어, 당신은 on 기능이 $() 함수의 반환에 호출하려는

$(document).on() // on function called on the return of $() function 

하지만이 의도 한대로 작동하지 않을 것입니다 :

$ document.on() // $() function called with document.on() return! 

그래서, 그 시행 on 함수가 $() 함수의 결과에 대해 호출되면 괄호를 추가합니다.

(3210)는 CoffeeScript style guide에 따라,

함수 그룹 스타일

권장되지 않도록주의하십시오.

그래서이 :) 사용을 중지 할 친구를 추천 할

관련 문제