Skip to content

参考

基于现代 JavaScript(ES2025 · 核于 2026-06)

速查

  • 类是函数typeof C === "function",方法挂 C.prototype;类体永远严格模式;声明不提升(TDZ);必须 new
  • 成员归属:方法在原型(共享)、字段在实例(各一份)、static 在类自身、# 私有按类隔离
  • 继承extends 单继承;子类构造函数先 super() 再用 thissuper.m() 调父类;私有字段不继承
  • 私有#field/#m() 硬私有,类外访问是语法错误;#x in obj 做品牌检查
  • 判定instanceof 看原型链、可被 Symbol.hasInstance 改写;强证明用品牌检查;new.target 认「谁在 new」
  • 版本class/extends/static/get·set = ES2015;字段 / 私有 / 静态块 = ES2022(2023 起广泛可用)
  • 装饰器非原生,TC39 Stage 3 收敛中,靠 TS/Babel 转写;与 TS 旧装饰器不兼容

类体成员一览

成员可见性归属语法ES 版本
构造函数公有实例constructor() {}ES2015
实例方法公有原型m() {}ES2015
getter / setter公有原型get p() {} / set p(v) {}ES2015
实例字段公有实例x = 值;ES2022
静态方法公有static m() {}ES2015
静态 getter / setter公有static get p() {}ES2015
静态字段公有static x = 值;ES2022
私有字段私有实例#x = 值;ES2022
私有方法私有实例#m() {}ES2022
私有 getter / setter私有实例get #p() {} / set #p(v) {}ES2022
私有静态字段私有static #x = 值;ES2022
私有静态方法私有static #m() {}ES2022
静态初始化块——static { ... }ES2022

方法名位还支持生成器 *m() {}、异步 async m() {}、计算名 [expr]() {}(均 ES2015+)。

关键字 / 元属性速查

写法含义
new调用构造函数创建实例;类必须用 new 调用
extends声明继承;后接任意构造函数或 null(单继承)
super(...)子类构造函数中调用父类构造函数(须先于 this
super.m() / super.x调用 / 读取父类的方法或(静态)属性
static把成员挂到类自身,而非实例
#name私有成员(字段 / 方法 / 访问器 / 静态)
#name in obj品牌检查:安全判断 obj 是否拥有该私有成员
instanceof原型链判定;可被 Symbol.hasInstance 定制
new.target构造函数内得到实际被 new 的类;非 new 调用为 undefined
accessor(装饰器提案)自动访问器,非原生、需转写

常见坑速查

现象原因对策
方法当回调 thisundefined类方法不自动绑定 + 严格模式.bind(this) 或箭头函数字段
new Foo() 报「before initialization」类声明不提升、有 TDZ类定义放在使用之前
子类构造函数报「must call super」super() 之前访问了 thissuper(...) 再用 this
以为 _x 是私有,外部仍能改_x 只是命名约定真私有用 #x
obj.#x 在类外报语法错误私有字段类外不可访问暴露公有 get 访问器
静态成员在实例上读到 undefined静态挂在类自身类名.成员 访问
每个实例的方法 === 比较为 false把函数写成了实例字段共享行为写成原型方法

各特性 Baseline 状态(2026-06 核)

特性标准状态
class 声明 / 表达式、extendssuperES2015✅ 广泛可用
实例方法、get / setstatic 方法/字段ES2015✅ 广泛可用
公有 / 私有实例字段(x / #xES2022✅ Baseline,2023-03 起广泛可用
私有方法 / 私有访问器、私有静态ES2022✅ Baseline,2023 起广泛可用
#x in obj 品牌检查ES2022✅ Baseline,2023 起广泛可用
静态初始化块 static {}ES2022✅ Baseline,2023-03 起广泛可用
Symbol.hasInstancenew.targetES2015✅ 广泛可用
装饰器 @deco / accessorTC39 提案🟠 非原生,Stage 3 收敛中,须 TS / Babel 转写

权威链接

标准 / 规范

教程 / 指南

兼容性 / 调试

相关页