在javascript中你会写一些类似的东西:
method.apply(this,arguments);
但是,你怎么把它翻译成coffeescript?:
method.apply(@, arguments)
参数变量有不同的名称吗?
答案 0 :(得分:17)
使用splats,您可以使用更清洁的coffeescript语法:
caller: ->
@method arguments...
以上编译为以下Javascript:
caller: function() {
return this.method.apply(this, arguments);
}
答案 1 :(得分:5)
arguments
也可以在咖啡脚本中找到。所以你可以这样做:
method.apply @, arguments
答案 2 :(得分:2)
如果你希望它能像javascript一样工作,你可能会这样做,但是coffeescript对于你可能想要完成的事情有“splats”。以下是coffeescript.org的解释:
gold = silver = rest = "unknown"
awardMedals = (first, second, others...) ->
gold = first
silver = second
rest = others
contenders = [
"Michael Phelps"
"Liu Xiang"
"Yao Ming"
"Allyson Felix"
"Shawn Johnson"
"Roman Sebrle"
"Guo Jingjing"
"Tyson Gay"
"Asafa Powell"
"Usain Bolt"
]
awardMedals contenders...
alert "Gold: " + gold
alert "Silver: " + silver
alert "The Field: " + rest