设计模式的核心就是观察逻辑是否能够拆分,能不能够达到灵活变通
构造器模式:构造器是一个当新建对象的内存被分配后,用来初始化该对象的一个特殊函数(new)
有一天需要你写个信息录入系统的时候可以写
const employeeA = {
name: '老弟',
age:25
}
然后写多一个呢
const employeeB = {
name: '老妹',
age:24
}
在写多几十几百个呢,这时候如果还是这样写,代码量就会超多,可以用构造函数简化
function Employee(name,age){
this.name = name
this.age = age
this.toString = function(){
return this.name + this.age
}
}
这个employee就是一个构造器
调用的时候就可以使用
const A = new Employee('老弟',25)
console.log(A.toString())
上述是个简单版本的构造器模式,但是有2个问题
1.难以继承
2.每个Emloyee的toString方法都会被重新定义,理想的情况应该是能够被复用
学过原型的都了解一个属性叫prototype,当我们在创建方法挂载在上面的时候,依赖于它被创建的对象都可调用
function Employee(name,age){
this.name = name
this.age = age
}
Employee.prototype.toString = function(){
return this.name + this.age
}
const A = new Employee('老弟',25)
console.log(A.toString())
这样toString()都能被所有的Employee对象所共享了