一、装饰者模式的作用
function Person(personName) { this.name = personName; } Person.prototype.showEquipment = function() { return ‘‘;//由于一开始人物是没有装备的。所以是空 }; //一个装饰者类,可以用来装备剑 function equipSword(person) { this.person = person; this.name = person.name; } equipSword.prototype.showEquipment = function() { return this.person.showEquipment() + ‘sword;‘; }; //一个装饰者类,可以用来装备盾 function equipShield(person) { this.person = person; this.name = person.name; } equipShield.prototype.showEquipment = function() { return this.person.showEquipment() + ‘shield;‘; };
//使用 var person = new Person(‘guoqinglinag‘); alert(person.showEquipment());//一开始什么都没有装备 person = new equipSword(person); alert(person.showEquipment());//装备了sword之后,会显示sword person = new equipShield(person); alert(person.showEquipment());
//一个输出一串字符串的函数 function echoStr() { return ‘this is a string‘; } //一个装饰者函数 function toUpperCase(func) { return function() { return func().toUpperCase(); } } //使用 alert(echoStr()); echoStr = toUpperCase(echoStr); alert(echoStr());
原文:http://www.cnblogs.com/oadaM92/p/4385635.html