js 继承中 同名方法的调用问题

本文探讨了JavaScript继承中同名方法的调用问题,与Java的多态特性相似,允许父类定义基本逻辑,子类进行具体实现。在JavaScript的原型链机制下,子类实例调用方法时,`this`指向子类,因此会优先找到子类重写的方法。文章通过实例阐述了这一概念。
摘要由CSDN通过智能技术生成

原文链接: js 继承中 同名方法的调用问题

上一篇: sharp 去除图片边框

下一篇: vite + vue3 + jsx + ts 配置一个小项目

和java中类似, 父类可以先使用一个空方法定义内容, 在子类中填充后再调用, 比如排序, 具体的比较可以在父类中使用简单比较, 但是可以在子类中复写, 也就是父类定义逻辑, 子类做具体实现

涉及到原型链

子类调用父类方法时this的指向是子类实例, 所以会从原型链中从上到下找, 第一个找到的就是子类重写后的函数

up-f797f0249cb27649ee158973d36e4d765ef.png

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值