Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.2k views
in Technique[技术] by (71.8m points)

ES6继承问题

class Father{
    say(){
        console.log('father')
    }

}
class Son extends Father{
    say(){
        console.log(super.say())
    }
}
let son = new Son();
son.say()
为什么打印出来第一个是father,会出现第二个是undefined

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
class Son extends Father {
    say() {
        // 在这里,super 指向的是 Father 的原型对象
        // 相当于调用了 Father.prototype.say(),该方法中打印了 'father',但没有返回值,默认返回 undefined。所以在子类中打印 undefined。
        console.log(super.say());
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...