当前位置:首页 > JavaScript

js 实现super

2026-03-15 10:58:21JavaScript

在 JavaScript 中实现 super 的功能

JavaScript 中的 super 关键字用于调用父类的构造函数或方法。以下是几种常见场景的实现方法:

js 实现super

在构造函数中调用 super

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

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

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

在方法中调用父类方法

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

class Child extends Parent {
  greet() {
    return super.greet() + ' and Child'; // 调用父类的greet方法
  }
}

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

在静态方法中使用 super

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

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

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

使用 Reflect 实现类似 super 的功能

const parent = {
  greet() {
    return 'Hello from Parent';
  }
};

const child = {
  greet() {
    return Reflect.get(parent, 'greet', this)() + ' and Child';
  }
};

Object.setPrototypeOf(child, parent);
console.log(child.greet()); // 输出: Hello from Parent and Child

注意事项

  • super 只能在派生类(使用 extends 的类)中使用
  • 在构造函数中使用 super 必须在访问 this 之前
  • 在普通方法中,super 指向父类的原型对象
  • 在静态方法中,super 指向父类本身

标签: jssuper
分享给朋友:

相关文章

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

js 实现页面刷新

js 实现页面刷新

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