javascript class规范核心是统一用法以保障语义清晰、继承正确、封装有效;须严格pascalcase命名、统一属性声明位置、使用简洁方法语法、#私有成员、克制继承并配jsdoc与eslint强制校验。

JavaScript 的 class 语法本身是语法糖,但团队协作中若不统一用法,容易引发语义混乱、继承误用、封装失效等问题。规范重点不在“能不能写”,而在于“怎么写才一致、可读、可维护”。以下是实践中最需落地的几项规范建议。
类声明与命名必须严格 PascalCase
类名代表一种类型或实体,必须首字母大写、驼峰式,且语义明确:
- ✅ 正确:
class UserProfile、class ApiClient、class PaymentProcessor - ❌ 错误:
class userprofile(小写)、class user_profile(下划线)、class handleUser(动词开头,应为名词)
避免缩写(如 class UsrProf),除非是行业公认缩略词(如 class HTTPClient)。类名不体现实现细节(如不用 class UserProfileClass)。
构造函数与属性声明位置要统一
团队需约定实例属性的声明方式,防止混用导致理解成本上升:
- 公共实例属性统一放在类体顶部(ES2022+ 推荐):
class User {<br> role = 'guest';<br> isActive = true;<br> constructor(name) { this.name = name; }<br>} - 禁止在
constructor外随意挂载属性(如this.id = null写在方法里) - 所有初始化逻辑必须收束到
constructor,不分散到其他方法中
这样结构清晰:顶部看默认状态,构造器看必填依赖,便于静态分析和 IDE 提示。
方法定义遵循无 function 关键字 + 原型共享原则
类内方法天然挂载在原型上,这是性能和语义的基础:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- ✅ 正确写法(简洁方法语法):
greet() { return `Hi, ${this.name}`; } - ❌ 禁止写成:
greet: function() { ... }或greet = () => { ... }(后者会丢失this绑定且无法被子类super调用) - 静态方法必须显式加
static,且只用于与类相关、无需实例的逻辑(如static fromJSON(data))
私有方法/属性统一用 # 前缀(ES2022),禁止用下划线模拟(如 _init),确保封装真实有效。
继承与扩展必须显式、克制、有文档
类继承不是装饰,而是强契约关系。团队需明确:
- 子类必须调用
super(),且在访问this前完成 - 重写父类方法时,必须使用
super.xxx()显式调用(除非明确意图覆盖全部逻辑) - 禁止多层深度继承(如 A → B → C → D),超过两层需评估是否该用组合(composition)替代
- 每个
class文件顶部加 JSDoc 注释,说明设计意图、是否可被继承、关键 hook 方法
例如:/** @classdesc 封装用户认证流程,可被继承定制登录态刷新策略。*/
工具链必须强制校验 class 相关规范
仅靠人工 review 容易遗漏。应在 ESLint 中启用以下规则:
-
no-useless-constructor:删除空或仅调super()的构造器 -
no-dupe-class-members:防止同名方法/属性覆盖 -
no-unused-private-class-members(需 ESLint v8.50+):检查未使用的私有成员 - 配合 Prettier,确保类内换行、缩进、括号风格统一(如方法间空行、
constructor后空行)
CI 流程中拒绝未通过 eslint --ext .js,.ts src/ 的 PR。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










