JavaScript 静态初始化块
ES2022类静态初始化块:static{...}在类定义时执行一次(初始化静态字段/复杂逻辑)、多个static块按书写顺序执行、与static字段初始化器的区别(可写多行/异常处理/作用域)、替代IIFE初始化模式 · 难度:入门 · +10XP
JavaScript 静态初始化块 —— static {}
ES2022允许在类中使用static{}静态初始化块。它在类定义时执行一次,可以写多行逻辑、处理异常——比在static字段声明中写复杂逻辑更清晰。
基本用法
class Config {
static #config;
static {
try {
this.#config = JSON.parse(localStorage.getItem('config')) || {};
} catch {
this.#config = { theme: 'light' };
}
if (!this.#config.theme) this.#config.theme = 'light';
}
static get(key) { return this.#config[key]; }
}动手练习
- 基础练习:用static{}从localStorage初始化类的静态配置。
- 进阶应用:在static{}中做环境检测并设置不同的策略。
- 项目实战:把类中复杂的静态初始化逻辑改为static{}块。