js设计模式之装饰者模式

所谓装饰者模式就是一种灵活的继承方案,对对象进行扩展而不需要重新构造一个实例,下面来看下代码

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函数即可

猜你喜欢

转载自blog.csdn.net/dtbk123/article/details/87989623