CoffeeScript 中 $(document).on 和 ($ document).on 的区别?
Difference between $(document).on and ($ document).on in CoffeeScript?
我的朋友在他的 CoffeeScript 代码中使用 ($ document).on
。这与通常的 $(document).on
有何不同?如果有,有何不同?
在 CoffeeScript 中,调用带有参数的函数不需要括号。
例如:
console.log("Hello") // Hello
console.log "Hello" // Hello
所以,考虑一下这些是等价的:
$document = $(document)
$document = $ document
$document = ($ document)
但是,在某些情况下,括号对于消除歧义是必要的。
例如,您希望在 $()
函数的 return 上调用 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,
The function grouping style is not recommended.
所以建议您的朋友停止使用它:)
我的朋友在他的 CoffeeScript 代码中使用 ($ document).on
。这与通常的 $(document).on
有何不同?如果有,有何不同?
在 CoffeeScript 中,调用带有参数的函数不需要括号。
例如:
console.log("Hello") // Hello
console.log "Hello" // Hello
所以,考虑一下这些是等价的:
$document = $(document)
$document = $ document
$document = ($ document)
但是,在某些情况下,括号对于消除歧义是必要的。
例如,您希望在 $()
函数的 return 上调用 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,
The function grouping style is not recommended.
所以建议您的朋友停止使用它:)