¿Diferencia entre $ (documento) .on y ($ document) .on en CoffeeScript?

Mi amigo está usando ($ document).on en su código CoffeeScript. ¿Esto difiere del $(document).on y, de ser así, de qué manera?

En CoffeeScript, llamar a una function con arguments no requiere paréntesis.

Por ejemplo:

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

Por lo tanto, considere que estos son equivalentes:

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

Sin embargo, los paréntesis son, en ciertas circunstancias, necesarios para desambiguar el significado.

Por ejemplo, desea que se invoque la function on cuando se devuelve la function $() :

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

Pero esto no funcionaría según lo previsto:

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

Entonces, para hacer cumplir que la function on se llama al resultado de la function $() , agregamos paréntesis:

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

Tenga en count que, de acuerdo con la guía de estilo CoffeeScript ,

El estilo de agrupación de funciones no es recomendable.

Así que recomiendo a tu amigo que deje de usarlo 🙂