是否可以在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”
答案 0 :(得分:36)
有可能。但是,要引用该方法,您必须使用@move()
或this.move()
,名称move()
本身是不够的。
答案 1 :(得分:4)
Gotcha Alert:如果你发现@或者它没有引用构造函数中的新实例,请检查你是否记得使用NEW关键字:
instance = new Class()
NOT:
instance = Class()
这让我感到非常沮丧。希望这有助于其他人!