Подтвердить что ты не робот

Вызов метода из конструктора в Coffeescript

Можно ли вызвать метод из конструктора в Coffeescript?
например.

class Animal
  constructor: (@name) ->
    move()

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

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

sam = new Snake "Sammy the Python"

Это генерирует следующее сообщение об ошибке "ReferenceError: move is not defined"

4b9b3361

Ответ 1

Это возможно. Однако, чтобы ссылаться на метод, вы должны использовать @move() или this.move(), самого имени move() недостаточно.

Ответ 2

Gotcha Alert: если вы обнаружите, что @или это НЕ относится к новому экземпляру в конструкторе, проверьте, не запомнили ли вы использовать ключевое слово NEW:

instance = new Class()

НЕ

instance = Class()

Это поймало меня и было очень неприятно. Надеюсь, это поможет кому-то еще!