CoffeeScript中的$(document).on和($ document).on之间的区别?

时间:2015-01-07 17:33:00

标签: javascript jquery coffeescript domdocument

我的朋友在他的CoffeeScript代码中使用($ document).on。这与通常的$(document).on有何不同?如果有,以何种方式?

1 个答案:

答案 0 :(得分: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函数的结果上调用$()函数,我们添加括号:

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

请注意,根据CoffeeScript style guide

  

不建议使用功能分组样式。

所以建议你的朋友停止使用它:)