开发者

Calling a method from the constructor in Coffeescript

Is it possibl开发者_如何转开发e to call a method from the constructor in 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"

This is generating the following error message "ReferenceError: move is not defined"


It is possible. However, to refer to the method you must use @move() or this.move(), the name move() itself is not enough.


Gotcha Alert: if you find that @ or this does NOT refer to the new instance in a constructor, check you remembered to use the NEW keyword:

instance = new Class()

NOT:

instance = Class()

This caught me out and was really frustrating. Hope this helps someone else!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜