原文链接: js 继承中 同名方法的调用问题
上一篇: sharp 去除图片边框
下一篇: vite + vue3 + jsx + ts 配置一个小项目
和java中类似, 父类可以先使用一个空方法定义内容, 在子类中填充后再调用, 比如排序, 具体的比较可以在父类中使用简单比较, 但是可以在子类中复写, 也就是父类定义逻辑, 子类做具体实现
涉及到原型链
子类调用父类方法时this的指向是子类实例, 所以会从原型链中从上到下找, 第一个找到的就是子类重写后的函数
- class A {
- constructor(name) {
- this.name = name
- }
- say() {
- console.log("A say", this.name)
- }
- walk() {
- console.log("A walk", this.name)
- this.say()
- }
- }
-
- class B extends A {
- constructor(name) {
- super(name)
- }
- say() {
- console.log("B say", this.name)
- }
- }
- const b = new B('b')
- b.walk()