javascript构造函数须首字母大写,以区分普通函数、避免this指向错误、支持工具链识别;应使用pascalcase命名,如userprofile、paymentprocessor,并通过eslint new-cap等规则强制校验。

JavaScript 中构造函数的命名规范要求首字母大写,这是为了在代码中清晰区分普通函数和用于 new 实例化的构造函数,属于社区广泛遵循的约定(虽非语言强制,但被 ESLint、TypeScript 和主流框架默认采纳)。
为什么必须首字母大写?
这是 JavaScript 的语义约定:首字母大写的函数名暗示它应配合 new 使用。若小写命名(如 person()),不仅易被误用为普通函数,还可能因忘记 new 导致 this 指向全局对象(非严格模式下)或 undefined(严格模式),引发隐蔽 bug。工具链(如 IDE 自动补全、JSDoc 识别、TypeScript 类型推导)也依赖该大小写规则识别构造意图。
标准命名方式与示例
使用 PascalCase(每个单词首字母大写,无空格/下划线),名称应准确表达实例类型:
-
正确:
function UserProfile() {}、function HttpRequest() {}、function DOMElementWrapper() {} -
错误:
function userprofile() {}(全小写)、function user_profile() {}(下划线)、function Userprofile() {}(驼峰不标准)
ES6 Class 仍需遵守此规范
类声明本质是构造函数的语法糖,命名规则完全一致:
-
推荐:
class PaymentProcessor {}、class ApiClient {} -
避免:
class paymentProcessor {}(即使能运行,但破坏可读性与工具支持)
配合工具强化规范
在项目中启用 ESLint 规则可自动拦截违规命名:
- 启用
new-cap规则:禁止调用首字母大写的函数时不加new,也禁止用new调用小写函数 - 启用
func-name-matching(配合capIsNew选项):确保函数名与是否作为构造函数使用保持一致 - VS Code + TypeScript:类名未大写时,编辑器会提示“Class name must be in PascalCase”
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











