什么是工厂函数
其实工厂函数就是用来创建多个属性名相同但属性值不同的对象
function createPerson(name,age){
let p = {}
p.name = name
p.age = age
return p
}
//调用者
let p1 = createPerson('张三',20)
从以上代码中我们不难看出工厂函数工作的流程
1.声明空对象
2.赋值给这个空对象
3.返回这个空对象
每调用一次这个函数就创建一个对象
什么是构造函数
构造函数的作用与工厂函数的作用是一致的,但构造函数的代码更加简洁
function createPerson(name,age){
this.name = name
this.age = age
}
//调用者
let p1 = new createPerson('张三',20)
而构造函数的流程更加简单,但为什么简单呢?
是因为new关键字将工厂函数的流程全部走了一遍
new工作流程
1.创建一个空对象
2.this指向这个空对象
3.赋值这个空对象
4.返回这个空对象
构造函数与工厂函数的异同点
相同点: 都是用来创建多个属性名相同但属性值不同的对象
不同点:
1.工厂函数不使用new
2.工厂函数不使用this
3.工厂函数需要返回新对象