javascript class 应遵循“从静态到实例、从通用到具体、从声明到行为”顺序:静态成员(属性、方法)优先,其次构造函数,再实例字段,最后按语义分组的方法(生命周期→核心→辅助→getter/setter),私有成员统一声明。

JavaScript 中 class 语法本身不强制结构顺序,但遵循清晰、可维护的约定能显著提升代码可读性和协作效率。核心原则是:**从静态到实例、从通用到具体、从声明到行为**。
静态成员优先(static fields / methods)
类中最早出现的应是 static 成员,因为它们不依赖实例状态,属于类自身。把常量、工具方法、工厂函数放在这里,便于快速定位和复用。
- 静态属性(如默认配置、版本号)写在最前面
- 静态方法(如
fromJSON()、createDefault())紧随其后 - 避免在 static 块里做副作用操作(如发起网络请求),除非明确需要初始化时执行
构造函数紧随其后(constructor)
constructor 是实例化的入口,应紧跟 static 部分。它负责初始化实例状态,不宜承担过多逻辑。
- 参数按“必填 → 可选 → 配置对象”顺序排列
- 只做属性赋值、基础校验、必要初始化(如绑定事件、创建内部对象)
- 避免在 constructor 中调用异步方法或触发副作用(如发请求、修改 DOM)
实例属性(字段声明)放在 constructor 后面
ES2022 起支持公有字段语法(prop = value),推荐显式声明所有实例属性(包括初始化值),而不是仅靠 constructor 赋值。
- 字段声明比 constructor 内赋值更直观,利于类型推导和 IDE 支持
- 私有字段用
#privateField语法,也统一放在这里(需注意:私有字段必须声明,不能只在 constructor 里动态添加) - 避免混合使用字段声明和 constructor 赋值同一属性,会造成理解混乱
方法按语义分组,常用/核心方法靠前
方法不是按字母顺序排,而是按职责和调用频率组织。一般顺序为:
- 生命周期相关(如
init()、destroy(),若存在) - 核心业务方法(如
save()、calculate()) - 辅助方法(如
_validateInput()、_formatData()) - Getter/setter(如有,靠近相关字段声明,或集中放在方法区中段)
私有方法建议加下划线前缀(如 _handleClick)或用私有字段 + 私有方法(#handleClick),保持一致性即可。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











