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

supermove基本クラスのメソッドを呼び出します。具体的には、Animal moveメソッドを呼び出し5てパラメーターとして渡しmetersます。

この例を CoffeeScript ページで実行すると、「Python のサミーが 5 メートル移動しました」というアラートが表示されます。

superサブクラスに、基本クラスの実装に加えて実行する独自のロジックがある場合に役立ちます。superメソッドの先頭または追加のコードの実行後に配置できます。配置されているロジックによっては、順序が重要になる場合があります。

于 2013-08-09T17:56:17.643 に答える