当前位置:首页 > JavaScript

extends实现js

2026-03-02 04:13:21JavaScript

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

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

extends实现js

基本语法

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实现js

继承内置类型

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

静态方法的继承

静态方法也会被继承:

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实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…