1. javascript 工厂模式
什么是工厂模式?为什么需要工厂模式?工厂模式的作用?
- 工厂模式是一种创建型模式,简单来说,工厂模式就是创建对象的一种模式
- 当我们需要创建大量的对象,并且每个对象都有相同的属性时,如果我们把每个对象都单独创建,就会造成代码的大量冗余。因此我们需要用一些更便捷,节省时间和内存空间的方法,去创造大量的对象。
- 工厂模式的作用:
创建对象;降低代码冗余度。
工厂模式就相当于一个生产车间,你把零件的信息都设置好丢进工厂里,工厂就会帮你把零件造出来。
1.1 使用工厂模式创建对象
//将创建对象的代码封装在一个函数中
function createPerson(name, age, gender) {
var person = new Object();
person.name = name;
person.age = age;
person.gender = gender;
person.sayName = function () {
console.log(this.name);
}
return person;
}
//利用工厂函数来创建对象
var person1 = createPerson("zhangsan", 18, 'male');
var person2 = createPerson("lisi", 20, 'female');
**优点:**只要我们在利用工厂函数创建对象时,给函数传入参数就行
**缺点:**这种方式本质上是将创建对象的过程进行了封装,本质并没有改变,我们创建一个student时无法知道其具体的数据类型,只知道这是一个对象,往往实际开发中我们需要确定这个对象到底是个Person的实例还是Dog的实例。
2. 构造函数模式
ECMAScript 中的构造函数是用于创建特定类型对象的。像 Object 和 Array 这样的原生构造函数,运行时可以直接在执行环境中使用。当然也可以自定义构造函数,以函数的形式为自己的对象类型定义属性和方法。
JavaScript中可以自定义构造函数,从而自定义对象类型的属性和方法,构造函数本身也是函数,只不过可以用来创建对象。
1.1的案例可以用构造函数这样写:
// 自定义构造函数
function Person(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this<