我不确定标题是否说明了一切。
我要做的是拥有一个超级类(或多或少抽象类),然后由另一个从超类扩展的类使用。
现在我做的是创建一个简单的脚本:
class Animal
constructor: (@name, @sound) ->
setSound: (@sound) ->
sound: ->
alert "#{@sound}!!!"
name: ->
alert "#{@name}"
class Dog extends Animal
constructor: (@name) ->
@setSound "Woof"
doggy = new Dog "Max"
doggy.sound()
正如你所看到的 - 这只是一个蹩脚的例子,但是当我现在调用doggy.sound()
时,我得到一个TypeError作为回报。
您可以在此处查看此脚本:http://jsfiddle.net/zrVZb/1/
我做错了什么,或者这甚至是coffeescript中的错误?
编辑:我刚看到它是contructor
而不是construct
。但现在我得到了TypeError。
由于
答案 0 :(得分:0)
您的方法称为sound
。但是然后传递一个具有相同名称的属性,它会覆盖此方法。尝试将声音方法重命名为makeSound: