当前位置:首页 > JavaScript

js class实现

2026-04-05 15:06:01JavaScript

JavaScript 中的 Class 实现

JavaScript 中的 class 是 ES6 引入的语法糖,本质上是基于原型继承的封装。它提供了一种更清晰、更面向对象的方式来定义构造函数和原型方法。

基本语法

class MyClass {
  constructor(param1, param2) {
    this.property1 = param1;
    this.property2 = param2;
  }

  method1() {
    return this.property1 + this.property2;
  }
}

继承

使用 extends 关键字实现继承:

js class实现

class ChildClass extends ParentClass {
  constructor(param1, param2, param3) {
    super(param1, param2); // 调用父类构造函数
    this.property3 = param3;
  }

  method2() {
    return super.method1() + this.property3; // 调用父类方法
  }
}

静态方法

静态方法属于类本身而非实例:

js class实现

class MathUtils {
  static sum(a, b) {
    return a + b;
  }
}
MathUtils.sum(1, 2); // 3

Getter/Setter

可以定义属性的存取器:

class Person {
  constructor(name) {
    this._name = name;
  }

  get name() {
    return this._name.toUpperCase();
  }

  set name(newName) {
    this._name = newName;
  }
}

私有字段

ES2022 新增私有字段语法:

class Counter {
  #count = 0; // 私有字段

  increment() {
    this.#count++;
  }

  getCount() {
    return this.#count;
  }
}

注意事项

  • 类声明不会被提升,必须先声明后使用
  • 类中的方法默认是不可枚举的
  • 类内部默认使用严格模式
  • 可以省略 constructor,但实例化时会自动调用空构造函数

与传统构造函数的对比

// ES5 构造函数
function OldClass(param) {
  this.prop = param;
}
OldClass.prototype.method = function() {
  return this.prop;
};

// 等价于 ES6 class
class NewClass {
  constructor(param) {
    this.prop = param;
  }
  method() {
    return this.prop;
  }
}

标签: jsclass
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…