当前位置:首页 > JavaScript

extends实现js

2026-03-02 04:13:21JavaScript

在 JavaScript 中实现继承的 extends 关键字

JavaScript 中的 extends 关键字用于实现类之间的继承。它允许子类继承父类的属性和方法,同时可以扩展或重写父类的功能。

基本语法

class Parent {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log(`Hello, ${this.name}`);
  }
}

class Child extends Parent {
  constructor(name, age) {
    super(name); // 调用父类的 constructor
    this.age = age;
  }

  greet() {
    super.greet(); // 调用父类的 greet 方法
    console.log(`I am ${this.age} years old`);
  }
}

const child = new Child('Alice', 10);
child.greet();

关键点

super 关键字用于调用父类的构造函数或方法。在子类的 constructor 中,super 必须在 this 之前调用。

继承内置类型

extends 也可以用于继承 JavaScript 内置类型,如 ArrayError 等:

class CustomArray extends Array {
  getFirst() {
    return this[0];
  }

  getLast() {
    return this[this.length - 1];
  }
}

const arr = new CustomArray(1, 2, 3);
console.log(arr.getFirst()); // 1
console.log(arr.getLast()); // 3

静态方法的继承

静态方法也会被继承:

extends实现js

class Parent {
  static staticMethod() {
    console.log('Parent static method');
  }
}

class Child extends Parent {}

Child.staticMethod(); // "Parent static method"

使用注意事项

  • 如果子类没有定义 constructor,JavaScript 会自动生成一个并调用 super()
  • 不能继承普通的构造函数(非 class 定义的),需要使用 Object.setPrototypeOf 等方式
  • 可以通过 instanceof 检查继承关系:child instanceof Parent 会返回 true

标签: extendsjs
分享给朋友:

相关文章

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…