当前位置:首页 > JavaScript

js extends 实现

2026-04-07 01:59:38JavaScript

理解 extends 的基本概念

在 JavaScript 中,extends 关键字用于实现类之间的继承。子类可以通过 extends 继承父类的属性和方法,同时可以添加或覆盖父类的行为。

基本语法

子类通过 extends 继承父类:

js extends 实现

class Parent {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `Hello, ${this.name}`;
  }
}

class Child extends Parent {
  constructor(name, age) {
    super(name); // 调用父类的构造函数
    this.age = age;
  }
  greet() {
    return `${super.greet()}! You are ${this.age} years old.`;
  }
}

const child = new Child('Alice', 10);
console.log(child.greet()); // 输出: Hello, Alice! You are 10 years old.

使用 super 关键字

super 关键字用于调用父类的构造函数或方法:

  • super() 必须在子类构造函数的第一行调用,用于初始化父类的属性。
  • super.methodName() 用于调用父类的方法。

覆盖父类方法

子类可以覆盖父类的方法,但仍可以通过 super 调用父类的原始方法:

js extends 实现

class Animal {
  makeSound() {
    return 'Some generic sound';
  }
}

class Dog extends Animal {
  makeSound() {
    return `${super.makeSound()}... Bark!`;
  }
}

const dog = new Dog();
console.log(dog.makeSound()); // 输出: Some generic sound... Bark!

静态方法的继承

静态方法也会被继承:

class Parent {
  static staticMethod() {
    return 'Parent static method';
  }
}

class Child extends Parent {}

console.log(Child.staticMethod()); // 输出: Parent static method

继承内置对象

extends 也可以用于继承 JavaScript 内置对象,如 ArrayError

class CustomArray extends Array {
  sum() {
    return this.reduce((acc, val) => acc + val, 0);
  }
}

const arr = new CustomArray(1, 2, 3);
console.log(arr.sum()); // 输出: 6

注意事项

  • 如果子类没有定义构造函数,JavaScript 会自动调用父类的构造函数。
  • 如果子类定义了构造函数,必须调用 super(),否则会抛出错误。
  • extends 后面可以是任何具有 prototype 属性的表达式(如函数或类)。

标签: jsextends
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…