我有以下代码:
class Animal
constructor: (@name) ->
say: () -> console.log "Hello from animal called #{ @name }"
class Dog extends Animal
say: () ->
super.say()
console.log "Hello from dog called #{ @name }"
a = new Animal('Bobby')
a.say()
d = new Dog("Duffy")
d.say()
结果不是
Hello from animal called Bobby
Hello from animal called Duffy
Hello from dog called Duffy
但是我收到以下错误:
Hello from animal called Bobby
Hello from animal called Duffy
Uncaught TypeError: Cannot call method 'say' of undefined
为什么超级未定义?如何调用父方法以扩展它?感谢
答案 0 :(得分:67)
我自己找到了答案,应该是:
class Dog extends Animal
say: () ->
super
console.log "Hello from dog called #{ @name }"