1
class Animal
  constructor: (@name) ->

  move: (meters) ->
    alert @name + " moved #{meters}m."

class Snake extends Animal
   move: ->
    alert "Slithering..."
    super 5

所以我浏览了 CoffeeScript 文档并遇到了上面的类扩展说明。有人可以向我确切解释执行该行时发生了什么super 5吗?我隐约明白它是用参数 5 调用超类的定义,但是如果假设我的蛇的名字是move,输出会是什么样子?mySnake.moveRobert

4

1 回答 1

2

super将调用move基类上的方法。具体来说,它会调用方法并作为参数Animal move传入。5meters

如果您在 CoffeeScript 页面上运行该示例,您应该会看到一条带有“Sammy the Python move 5m”的警报。

super当您的子类除了基类实现之外还有自己的逻辑要运行时,它很有用。您可以将其放置super在方法的开头,或在其他代码运行之后。顺序可能很重要,具体取决于现有的逻辑。

于 2013-08-09T17:56:17.643 回答