相关疑难解决方法(0)

调用coffescript超级方法

我有以下代码:

    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)

为什么超级未定义?如何调用父方法以扩展它?谢谢

coffeescript

32
推荐指数
1
解决办法
1万
查看次数

标签 统计

coffeescript ×1