构造函数批量初始化对象的核心是定义首字母大写的函数并用new多次调用,每个实例独立且结构一致;方法应挂载到prototype以节省内存;配合map或array.from可实现数组驱动的批量创建。

用构造函数批量初始化对象,核心是定义一个构造函数,然后用 new 关键字多次调用它——每次调用都会生成一个独立、结构一致的新对象。
定义构造函数,封装初始化逻辑
构造函数本质是一个普通函数,习惯上首字母大写,内部用 this 绑定实例属性。它把对象的“创建+赋值”过程抽象成可复用的模板:
function Person(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
this.greet = function() {
return `你好,我是${this.name},${this.age}岁,住在${this.city}`;
};
}
注意:方法写在构造函数内部会导致每个实例都重复创建一份函数,内存不高效;更推荐把方法挂到 Person.prototype 上(见下一点)。
用 new 批量创建多个实例
只要调用 new Person(...) 多次,就能得到一批初始化完成的对象:
const user1 = new Person('张三', 25, '北京');
const user2 = new Person('李四', 30, '上海');
const user3 = new Person('王五', 28, '广州');
console.log(user1.greet()); // 你好,我是张三,25岁,住在北京
console.log(user2.city); // 上海
每个实例都有自己的 name、age、city 值,互不影响。
优化:方法统一挂载到原型,节省内存
如果把方法放在构造函数里,每新建一个对象就会多一份函数副本。改用原型共享更合理:
function Person(name, age, city) {
this.name = name;
this.age = age;
this.city = city;
}
Person.prototype.greet = function() {
return `你好,我是${this.name},${this.age}岁,住在${this.city}`;
};
这样所有实例共用同一个 greet 方法,既保持功能完整,又提升性能。
配合数组或循环实现真正“批量”初始化
当数据来自数组时,可用 map 或 for 批量生成对象:
const rawData = [ ['Alice', 26, '深圳'], ['Bob', 31, '杭州'], ['Cindy', 24, '成都'] ]; const users = rawData.map(([name, age, city]) => new Person(name, age, city)); // users 是包含 3 个 Person 实例的数组
也可以用 Array.from 配合构造函数快速生成固定结构的多个空对象再填充,适合初始化默认值场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











