Javascript 函数调用的Coffeescript括号
Coffeescript为函数调用提供了设置或省略括号的自由。像Javascript 函数调用的Coffeescript括号,javascript,syntax,coffeescript,Javascript,Syntax,Coffeescript,Coffeescript为函数调用提供了设置或省略括号的自由。像 alert 'Hi folks' alert ('Hi folks') 他们是平等的 现在我想知道,可能是因为对coffeescript的经验不足,它的语法和它保持简单的目的,是否可以为下面这样的语句添加括号。我知道没有必要 编辑:如果我以与alert语句相同的方式应用该选项来设置括号,那么我会假设该语法不会对最终的js产生任何影响 将相当于JavaScript代码 define(function(require) { retu
alert 'Hi folks'
alert ('Hi folks')
他们是平等的
现在我想知道,可能是因为对coffeescript的经验不足,它的语法和它保持简单的目的,是否可以为下面这样的语句添加括号。我知道没有必要
编辑:如果我以与alert语句相同的方式应用该选项来设置括号,那么我会假设该语法不会对最终的js产生任何影响
将相当于JavaScript代码
define(function(require) { return 'goodbye' })
也就是说,使用函数作为其第一个(也是唯一一个)参数来调用define
。当您提出问题时,这可能不是您所期望的代码片段所做的
当我玩CoffeeScript时,我发现在网上的“try CoffeeScript”对话中尝试一些东西非常有帮助。这使您可以查看给定代码段编译到的JavaScript,并立即查看添加括号或更改缩进对结果JavaScript代码的影响。我绝对建议您这样做。:-)
编辑以反映问题中的编辑:
是的,在函数周围添加括号((require)->返回“再见”
)是有效的,并且不会改变行为。但是请注意,“foo(bar)
”和“foo(bar)
”由解析器进行不同的解析;在前者中,括号表示优先级(priority,即“常规括号”),在后者中,括号表示函数调用括号
“foo-bar
”、“foo(bar)
”、“foo(bar)
”都做同样的事情,但是“foo-bar,baz
”和“foo(bar,baz)
”都很好,foo(bar,baz)
”是一个语法错误
将相当于JavaScript代码
define(function(require) { return 'goodbye' })
也就是说,使用函数作为其第一个(也是唯一一个)参数来调用define
。当您提出问题时,这可能不是您所期望的代码片段所做的
当我玩CoffeeScript时,我发现在网上的“try CoffeeScript”对话中尝试一些东西非常有帮助。这使您可以查看给定代码段编译到的JavaScript,并立即查看添加括号或更改缩进对结果JavaScript代码的影响。我绝对建议您这样做。:-)
编辑以反映问题中的编辑:
是的,在函数周围添加括号((require)->返回“再见”
)是有效的,并且不会改变行为。但是请注意,“foo(bar)
”和“foo(bar)
”由解析器进行不同的解析;在前者中,括号表示优先级(priority,即“常规括号”),在后者中,括号表示函数调用括号
“
foo-bar
”、“foo(bar)
”、“foo(bar)
”都做同样的事情,但是“foo-bar,baz
”和“foo(bar,baz)
”工作正常,foo(bar,baz)
”是一个语法错误。是的,可以将匿名函数括在括号中
我运行了这个简单的脚本
咖啡
define = (func) -> func()
console.log define ((require) ->
return 'goodbye'
)
输出:
goodbye
是的,您可以将匿名函数包装在括号中 我运行了这个简单的脚本 咖啡
define = (func) -> func()
console.log define ((require) ->
return 'goodbye'
)
输出:
goodbye
你能按你想要的方式添加最后一条带括号的语句吗?我不明白你想达到什么目的。你能用你想要的方式加上最后一句话和括号吗?我不明白你想达到什么目的。谢谢。其实这就是我要找的。我只是好奇,是否可以将匿名函数包装为一个简单的参数。Thx用于更新+附加信息。总而言之,在类似上面括号的情况下,括号确实会对最终输出产生影响:
define((函数(require){return'bye';})代码>。而对于一个简单的参数——比如警报中的参数——它们没有?@SunnyRed:它们对警报的影响与对define的影响一样大。只是它是“优先括号”,而不是“函数调用括号”。如果函数和左括号之间没有空格,那么它将被解释为函数调用语法的一部分。我知道这不是什么问题,但是编译的js不同,在“advanced”case.Thx中有额外的括号。其实这就是我要找的。我只是好奇,是否可以将匿名函数包装为一个简单的参数。Thx用于更新+附加信息。总而言之,在类似上面括号的情况下,括号确实会对最终输出产生影响:define((函数(require){return'bye';})代码>。而对于一个简单的参数——比如警报中的参数——它们没有?@SunnyRed:它们对警报的影响与对define的影响一样大。只是它是“优先括号”,而不是“函数调用括号”。如果函数和左括号之间没有空格,那么它将被解释为函数调用语法的一部分。我知道这不是什么问题,但是编译后的js是不同的,在“advanced”一词中有额外的括号。