Javascript 咖啡脚本中$(document).on和($document).on之间的差异?
我的朋友正在他的咖啡脚本代码中使用Javascript 咖啡脚本中$(document).on和($document).on之间的差异?,javascript,jquery,coffeescript,domdocument,Javascript,Jquery,Coffeescript,Domdocument,我的朋友正在他的咖啡脚本代码中使用($document).on。这是否与通常的$(文档)不同。在上,如果是,以什么方式?在CoffeeScript中,调用带有参数的函数不需要括号 例如: console.log("Hello") // Hello console.log "Hello" // Hello P>所以,考虑这些是等价的: $document = $(document) $document = $ document $document = ($ document) 然而,在某些
($document).on
。这是否与通常的$(文档)不同。在
上,如果是,以什么方式?在CoffeeScript中,调用带有参数的函数不需要括号
例如:
console.log("Hello") // Hello
console.log "Hello" // Hello
<> P>所以,考虑这些是等价的:
$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
注意根据
不建议使用函数分组样式
因此,建议您的朋友停止使用它:)这只是一个带括号的函数调用;换句话说,它相当于
($(document))。在
@Pointy上,这样做只是增加文件的大小?我不是CoffeeScript人,但可能需要使
表达式正常工作。换句话说,$document.on
在没有额外的()
的情况下可能会被错误地解释。(顺便说一句,这可能是我不是咖啡脚本人的原因之一:)