当前位置:首页 > JavaScript

js extends 实现

2026-04-07 01:59:38JavaScript

理解 extends 的基本概念

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

基本语法

子类通过 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 调用父类的原始方法:

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

js extends 实现

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实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…