创建对象方式
- 对象字面量:使用花括号
{}
直接定义对象,语法简洁直观。
示例:
const personLiteral = {
name: 'Alice',
age: 30
};
- 构造函数:通过定义一个函数,使用
new
关键字调用该函数来创建对象。构造函数内部的 this
关键字指向新创建的对象。
示例:
function PersonConstructor(name, age) {
this.name = name;
this.age = age;
}
const personConstructor = new PersonConstructor('Bob', 25);
内存使用
- 对象字面量:每次使用对象字面量创建新对象,都会在内存中开辟新的空间存储对象属性,即使属性和其他对象字面量相同。
- 构造函数:通过构造函数创建的对象,虽然每个实例对象在内存中是独立的,但它们共享构造函数的属性和方法,相对节省内存。例如所有通过
PersonConstructor
创建的对象都共享 PersonConstructor.prototype
上的属性和方法。
复用性
- 对象字面量:复用性较差,每个对象字面量都是独立的,如需创建多个类似对象,需重复编写属性和方法。
- 构造函数:复用性强,只需定义一次构造函数,就可通过
new
关键字创建多个具有相同属性和方法的对象实例。同时,还可通过原型链来扩展对象的属性和方法,所有实例都能共享这些扩展。