ES6 类提供更清晰的面向对象语法,class 定义类,constructor 初始化实例,方法直接写在类体中;extends 实现继承,子类需调用 super() 初始化父类;static 定义静态方法和属性,属于类本身;广泛应用于全栈开发中的模块化设计。

JavaScript 中的类是 ES6 引入的重要语法特性,让开发者可以用更清晰、更接近传统面向对象语言的方式来组织代码。虽然 JavaScript 基于原型(prototype),但 ES6 类 提供了语法糖,使构造函数和继承更易读、更易维护。
一、ES6 类的基本语法
使用 class 关键字定义一个类,内部用 constructor 定义实例属性,其他方法直接定义在类体中。
class Person {constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, I'm ${this.name}`);
}
introduce() {
console.log(`${this.name} is ${this.age} years old.`);
}
}
创建实例:
const john = new Person("John", 25);john.greet(); // 输出: Hello, I'm John
二、类的继承:extends 与 super
使用 extends 实现类的继承,子类可以复用父类的属性和方法。在子类 constructor 中必须调用 super() 来初始化父类部分。
立即学习“Java免费学习笔记(深入)”;
class Student extends Person {constructor(name, age, major) {
super(name, age); // 调用父类构造函数
this.major = major;
}
study() {
console.log(`${this.name} is studying ${this.major}.`);
}
// 可以重写父类方法
introduce() {
super.introduce(); // 调用父类方法
console.log(`Major: ${this.major}`);
}
}
使用子类:
const alice = new Student("Alice", 20, "Computer Science");alice.greet(); // Hello, I'm Alice
alice.study(); // Alice is studying Computer Science.
alice.introduce(); // 多行输出,包含 age 和 major
三、静态方法与属性
静态方法通过 static 关键字定义,属于类本身,不被实例继承。常用于工具函数或类级别的操作。
static add(a, b) {
return a + b;
}
static PI = 3.14159;
}
调用方式:
console.log(MathUtils.add(2, 3)); // 5console.log(MathUtils.PI); // 3.14159
注意:实例不能调用静态方法。
四、在全栈开发中的实践应用
在 Node.js 后端或前端框架(如 React、Vue)中,类可用于构建模块化、可复用的组件或服务。
- 后端:用类封装数据库操作,如 User 类处理用户增删改查
- 前端:React 中类组件虽逐渐被函数组件取代,但理解类对阅读旧代码很重要
- 工具类:封装 HTTP 请求、日志记录、配置管理等通用功能
示例:Node.js 中的用户服务类
class UserService {constructor(db) {
this.db = db;
}
async createUser(userData) {
return await this.db.insert('users', userData);
}
async getUserById(id) {
return await this.db.find('users', id);
}
}
基本上就这些。ES6 类让 JavaScript 面向对象开发更直观,结合模块系统和现代框架,能有效支撑全栈项目结构。掌握类的定义、继承、静态成员和实际应用场景,是进阶 JS 开发的关键一步。不复杂但容易忽略细节,比如 super 的调用时机和 this 的绑定问题,需多练习巩固。










