ES6的class是基于原型的语法糖,需用new实例化且不提升;支持static静态成员、extends继承及super调用父类。

ES6 引入了 class 关键字,让 JavaScript 的面向对象写法更接近传统语言(如 Java、C#),但它本质上仍是基于原型的语法糖,并不改变底层机制。
基本类声明与构造函数
使用 class 声明一个类,内部用 constructor() 定义初始化逻辑:
- 类名首字母通常大写(约定,非强制)
- constructor 是唯一必需的方法,用于创建实例时初始化属性
- 方法之间不用逗号分隔,也不需要 function 关键字
示例:
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`Hello, I'm ${this.name}`);
}
}
实例化与方法调用
用 new 操作符创建实例,然后直接调用实例方法:
立即学习“Java免费学习笔记(深入)”;
- 必须用 new 调用类,否则报错(不同于普通函数)
- 类内部定义的方法默认添加到原型上,所有实例共享
- 类声明不会被提升(与 function 声明不同),必须先定义后使用
示例:
const alice = new Person('Alice', 30);alice.sayHello(); // "Hello, I'm Alice"
静态方法与属性
用 static 关键字定义静态成员,只能通过类名访问,不能在实例上调用:
- static method():常用于工具函数或工厂方法
- ES2022+ 支持公有静态字段(static prop = value)
- 静态方法中 this 指向类本身,不是实例
示例:
class MathUtils {static PI = 3.14159;
static double(x) { return x * 2; }
}
console.log(MathUtils.PI); // 3.14159
console.log(MathUtils.double(5)); // 10
继承与 super 关键字
用 extends 实现类继承,子类中通过 super() 调用父类构造函数,用 super.method() 调用父类方法:
- 子类构造函数中若使用 this,必须先调用 super()
- 可重写父类方法(覆盖),也可在重写中用 super.xxx() 复用逻辑
- 支持多层继承(A → B → C)
示例:
class Student extends Person {constructor(name, age, grade) {
super(name, age); // 必须先调用
this.grade = grade;
}
sayHello() {
super.sayHello();
console.log(`I'm in grade ${this.grade}`);
}
}









