📅  最后修改于: 2023-12-03 15:01:47.909000             🧑  作者: Mango
工厂函数是一种常见的JavaScript设计模式,用于实现对象的创建。它可以用来创建同一类对象的多个实例,并且可以通过参数化来自定义这些实例的属性和方法。
在介绍工厂函数之前,我们先来创建一个基础对象,用于演示工厂函数的作用。
let Person = {
sayHello: function() {
console.log("Hello, I'm a person.");
}
};
这是一个简单的JavaScript对象,拥有一个sayHello
方法用于输出一行文字。
接下来,我们来创建一个工厂函数,用于创建多个Person
对象实例。
function createPerson() {
return {
sayHello: function() {
console.log("Hello, I'm a person.");
}
};
}
在这个工厂函数中,我们返回了一个新的JavaScript对象,它拥有Person
的所有属性和方法。我们可以通过调用这个工厂函数来创建新的Person
对象实例:
let person1 = createPerson();
let person2 = createPerson();
现在,我们已经成功地用工厂函数创建了两个Person
对象实例。
接下来,我们来将工厂函数改造一下,加入参数化功能。这样,我们就可以通过参数来自定义每个实例的属性和方法了。
function createPerson(name, age) {
return {
name: name,
age: age,
sayHello: function() {
console.log(`Hello, I'm ${this.name} and I'm ${this.age} years old.`);
}
};
}
在这个工厂函数中,我们加入了name
和age
两个参数,并且用它们来自定义每个实例对象的属性。例如:
let person1 = createPerson("Alice", 25);
let person2 = createPerson("Bob", 30);
通过这样的方式,我们就可以轻松地创建多个不同属性的Person
对象实例了。
工厂函数是一种非常实用的设计模式,它可以用于创建同一类对象的多个实例,并且可以通过参数化来自定义这些实例的属性和方法。在JavaScript中,我们可以利用对象字面量和闭包来实现工厂函数的功能。