所谓装饰者模式就是一种灵活的继承方案,对对象进行扩展而不需要重新构造一个实例,下面来看下代码
class Person{
constructor(data){
this.name=data.name;
this.age=data.age
}
add(){
console.log(this.name+this.age)
}
}
var p1=new Person({name:'a',age:18})
p1.add()
function Decorator(obj,data){
for(let [key,value] of Object.entries(data)){
obj[key]=value;
}
}
Decorator(p1,{sex:"男"})
console.log(p1)
这样就不用重新构造一个Person实例,只要调用Decorator函数即可