如何理解JavaScript类继承?

在JavaScript中,有时我们需要扩展一个类,以便在现有功能的基础上添加新的功能。这篇文章将带你了解如何扩展一个JavaScript类,适合初学者快速入门。

JavaScript类的继承

要扩展一个JavaScript类,我们可以使用extends关键字和类语法。以下是一个简单的例子:

go 复制代码
class Person {
  sayHello() {
    console.log('hello');
  }
  walk() {
    console.log('I am walking!');
  }
}

class Student extends Person {
  sayGoodBye() {
    console.log('goodbye');
  }
  sayHello() {
    console.log('Hi, I am a student');
  }
}

const student1 = new Student();
student1.sayHello(); // 输出:Hi, I am a student
student1.walk();     // 输出:I am walking!
student1.sayGoodBye(); // 输出:goodbye

console.log(student1 instanceof Person); // 输出:true
console.log(student1 instanceof Student); // 输出:true

在这个例子中,我们定义了一个Person类,它有两个方法:sayHellowalk。然后,我们定义了一个Student类,通过extends关键字使其继承自Person类。

继承的细节

  1. 父类方法继承: Student类自动继承了Person类的所有方法,如walk方法。

  2. 子类方法重写: Student类可以重写父类的方法,例如它重写了sayHello方法,使其输出不同的内容。

  3. 添加子类方法: Student类可以有自己的方法,如sayGoodBye

通过使用extends关键字,Student类不仅拥有自己定义的方法,还继承了Person类的方法,实现了代码复用和功能扩展。

实例化和方法调用

通过new关键字,我们可以创建一个Student类的实例student1。然后,我们可以调用student1的所有方法,包括继承自Person类的方法和自己定义的方法。

instanceof操作符

instanceof操作符用于检测一个实例是否属于某个类。在这个例子中,student1不仅是Student类的实例,也是Person类的实例,因为Student继承了Person

结束

扩展JavaScript类的方式非常简单,只需要使用extends关键字和类语法。通过继承,我们可以轻松复用代码和扩展功能,使我们的代码更加简洁和高效。

希望这个简单的例子能帮助你理解JavaScript类的继承。如果你有任何疑问或想了解更多,欢迎在评论区留言与我互动!

相关推荐
xiaoye-duck9 分钟前
C++ string 底层原理深度解析 + 模拟实现(下)——面试 / 开发都适用
开发语言·c++·stl
xiaoqi92224 分钟前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233221 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
Hx_Ma161 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode2 小时前
原子操作类LongAdder
java·开发语言
烬头88212 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas1362 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠3 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
2601_949833393 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
lly2024063 小时前
C 语言中的结构体
开发语言