js中的工厂模式
时间: 2023-06-21 22:19:26 浏览: 133
在JavaScript中,工厂模式是一种创建对象的方法,它通过一个函数来构造并返回一个或多个对象,而不需要使用类(class)来定义一个对象。通过工厂模式,可以轻松地创建多个具有相同属性和方法的对象。
下面是一个简单的工厂模式的示例代码:
```javascript
function createPerson(name, age, job) {
var person = {};
person.name = name;
person.age = age;
person.job = job;
person.sayName = function() {
console.log(this.name);
};
return person;
}
var person1 = createPerson("John", 25, "Developer");
var person2 = createPerson("Mary", 30, "Designer");
person1.sayName(); // 输出 "John"
person2.sayName(); // 输出 "Mary"
```
在上面的代码中,`createPerson` 函数接受三个参数,然后返回一个包含这些参数的对象。每个对象都有一个 `sayName` 方法,可以输出对象的 `name` 属性。
工厂模式的优点是它可以使代码更加简洁和易于维护。同时,它也可以使我们更加灵活地创建对象,而不必担心类的定义和继承等问题。
相关问题
js工厂模式
JS的工厂模式是一种创建对象的设计模式,它通过工厂方法来创建对象,而不是通过直接实例化类来创建对象。这种模式可以帮助我们解耦和对象的创建,使得代码更加灵活。
在JS中,工厂模式通常通过函数实现。我们可以定义一个函数来充当工厂,该函数可以接收参数并返回一个新的对象。这个新的对象可以有一些共同的属性和方法,但也可以有自己的特定属性和方法。
举个例子,假设我们有一个工厂函数来创建人对象:
```javascript
function createPerson(name, age) {
let person = {};
person.name = name;
person.age = age;
person.sayName = function() {
console.log(`My name is ${this.name}`);
};
return person;
}
let person1 = createPerson("John", 25);
let person2 = createPerson("Jane", 30);
person1.sayName(); // My name is John
person2.sayName(); // My name is Jane
```
在上面的例子中,我们定义了一个`createPerson`函数,它接收`name`和`age`两个参数,并返回一个新的`person`对象。`person`对象有两个属性`name`和`age`,以及一个方法`sayName`。我们可以使用`createPerson`函数创建任意数量的`person`对象,并且每个对象都有自己的`name`和`age`属性,以及`sayName`方法。
这就是JS中的工厂模式。它可以帮助我们创建对象,同时也让代码更加灵活和可维护。
阅读全文