/* * 装饰者模式提供比继承更有弹性的替代方案 * 在不改变原构造函数的情况下,添加新的属性或功能*///需要装饰的类(函数)function Macbook() { this.cost = function () { return 1000; };}// 加个内存function Memory(macbook) { this.cost = function () { return macbook.cost() + 100; };}// 再买个保险function Insurance(macbook) { this.cost = function () { return macbook.cost() + 250; };}var myMac = new Insurance(new Memory(new Macbook()));console.log(myMac.cost()); // 1350
新闻热点
疑难解答