JavaScript中class的构造方法用constructor关键字定义,是类的唯一入口,new实例化时自动执行并初始化属性;若继承父类则首行必须调用super();不写时提供默认空函数,显式声明后不可重复;内部this指向新实例,返回值通常被忽略。

JavaScript 中 class 的构造方法用 constructor 关键字定义,它在 new 实例化时自动执行,负责初始化实例属性。
constructor 是类的唯一入口
每个 class 最多只能有一个 constructor。不写时,JS 会提供一个空的默认构造函数;一旦显式声明,就不能再重复定义,否则报错。
- 必须通过
new MyClass(...)触发,不能直接调用 - 内部的
this指向新创建的实例,用于绑定属性(如this.name = name) - 若类继承自父类(
extends),constructor 第一行必须调用super()
基本写法示例
最常见形式是接收参数并赋值给实例属性:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}
}
const dog = new Animal('旺财', '犬科');
console.log(dog.name); // '旺财'
支持默认值与逻辑处理
constructor 内可做类型判断、默认值兜底、数据预处理等:
立即学习“Java免费学习笔记(深入)”;
- 用逻辑运算符设置默认值:
this.id = id ?? Date.now() - 校验参数有效性:
if (typeof name !== 'string') throw new Error('name must be string') - 初始化复杂状态:
this.items = Array.isArray(items) ? [...items] : []
注意兼容性与常见错误
constructor 不是普通方法,语法和行为有明确限制:
- 类体中不能写
function constructor() {...},会报语法错误 - 方法之间不加逗号,constructor 后面跟的是花括号,不是分号
- 类声明不会被提升,必须先定义、后实例化,否则 ReferenceError
- constructor 返回值会被忽略(除非返回一个非 null 对象,此时 new 结果被替换——极少用)

















