我有以下代码:
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()
Run Code Online (Sandbox Code Playgroud)
结果不是
Hello from animal called Bobby
Hello from animal called Duffy
Hello from dog called Duffy
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Hello from animal called Bobby
Hello from animal called Duffy
Uncaught TypeError: Cannot call method 'say' of undefined
Run Code Online (Sandbox Code Playgroud)
为什么超级未定义?如何调用父方法以扩展它?谢谢
pis*_*hio 67
我自己找到了答案,它应该是:
class Dog extends Animal
say: () ->
super
console.log "Hello from dog called #{ @name }"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12993 次 |
| 最近记录: |