所谓装饰者模式就是一种灵活的继承方案,对对象进行扩展而不需要重新构造一个实例,下面来看下代码
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函数即可
本文介绍了一种灵活的继承方案——装饰者模式,通过该模式可以在不重新构造实例的情况下对对象进行扩展。通过JavaScript代码示例展示了如何使用装饰者模式为现有对象添加新属性。
540

被折叠的 条评论
为什么被折叠?



