3

在 javascript 中,您会编写如下内容:

method.apply(this,arguments);

但是,您如何将其翻译为咖啡脚本?:

method.apply(@, arguments)

arguments 变量是否有不同的名称?

4

3 回答 3

17

使用 splats 你可以使用更简洁的 coffeescript 语法:

caller: ->
  @method arguments...

以上编译为以下Javascript:

caller: function() {
  return this.method.apply(this, arguments);
}
于 2014-04-01T03:17:16.157 回答
5

arguments也可以在咖啡脚本中使用。所以你可以这样做:

method.apply @, arguments

于 2012-06-07T22:20:52.960 回答
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
于 2012-06-07T10:51:06.347 回答