从Coffeescript中的构造函数调用方法

时间:2011-08-08 10:50:24

标签: coffeescript

是否可以在Coffeescript中从构造函数中调用方法?
e.g。

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”

2 个答案:

答案 0 :(得分:36)

有可能。但是,要引用该方法,您必须使用@move()this.move(),名称move()本身是不够的。

答案 1 :(得分:4)

Gotcha Alert:如果你发现@或者它没有引用构造函数中的新实例,请检查你是否记得使用NEW关键字:

instance = new Class()

NOT:

instance = Class()

这让我感到非常沮丧。希望这有助于其他人!