工厂模式
工厂模式是软件开发的一种思想,使用特定工厂函数创建特定的对象
function createPerson(name,age,job){
let person=new Object(); // 创建局部对象
person.name=name; // 将属性设置给对象
person.age=age;
person.job=job;
person.introduce=function(){
console.log(person.name,person.age,person.job)
}
return person // 返回对象
}
let personInstance1=createPerson('zs',12,'前端工程师');
let personInstance2=createPerson('ls',12,'后端工程师')
实现思想:
每次调用工厂函数时,通过new Object() 方法创建一个局部对象,并将传递的参数设置给创建的局部对象,返回创建好的对象。
优点:
- 相较于通过字面量创建对象,避免过多的冗余代码
缺点:
- 无法使用 typeof、instance of 等方法进行类型的判断
构造函数
在ES6 之前,JavaScript 中没有class关键字,可以通过构造函数的方式实例化一个对象
function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
this.introduce=function(){
console.log(this.name,this.age,this.job)
};
}
let personInstance=new Person('zs',12,'前端工程师');
实现思想: 大致与工厂模式一致,使用 new 关键字 进行创建一个局部对象,并将this指向这个局部对象,并返回这个对象
优点
- 可使用instance of 进行判断对象的类型
缺点
- 一些公共属性重复,占据内存空间
原型模式
基于构造函数创建对象的方式,将公共属性设置为原型对象的属性
function Person(){
}
\