当前位置:首页 > JavaScript

js super 实现

2026-03-13 19:51:10JavaScript

super 在 JavaScript 中的实现

在 JavaScript 中,super 关键字用于调用父类的构造函数或方法。它主要用于类继承中,确保子类能够正确访问父类的属性和方法。

调用父类构造函数

在子类的构造函数中,super 必须在 this 之前调用,否则会抛出错误。这是因为 super 负责初始化父类的 this 上下文。

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

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

const child = new Child('Alice', 10);
console.log(child.name); // 输出: Alice
console.log(child.age); // 输出: 10

调用父类方法

super 也可以用于调用父类的方法,尤其是在子类重写父类方法时。

class Parent {
  greet() {
    return 'Hello from Parent';
  }
}

class Child extends Parent {
  greet() {
    return super.greet() + ' and Hello from Child';
  }
}

const child = new Child();
console.log(child.greet()); // 输出: Hello from Parent and Hello from Child

super 在静态方法中的使用

super 也可以在静态方法中调用父类的静态方法。

js super 实现

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

class Child extends Parent {
  static staticMethod() {
    return super.staticMethod() + ' and Static method from Child';
  }
}

console.log(Child.staticMethod()); // 输出: Static method from Parent and Static method from Child

注意事项

  • super 只能在派生类(子类)中使用,否则会抛出语法错误。
  • 在构造函数中,super 必须在访问 this 之前调用。
  • super 不能单独使用,必须作为函数调用(如 super())或属性访问(如 super.method())。

示例:完整的继承链

class GrandParent {
  constructor() {
    this.family = 'GrandParent';
  }
}

class Parent extends GrandParent {
  constructor() {
    super();
    this.parent = 'Parent';
  }
}

class Child extends Parent {
  constructor() {
    super();
    this.child = 'Child';
  }
}

const child = new Child();
console.log(child.family); // 输出: GrandParent
console.log(child.parent); // 输出: Parent
console.log(child.child); // 输出: Child

通过以上示例和说明,可以清晰地理解 super 在 JavaScript 中的实现和使用方式。

标签: jssuper
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…