一.模拟传统面向对象语言的装饰者模式: 假设我们在编写一个飞机大战的游戏,随着经验值的增加,我们操作的飞机对象可以升级成更厉害的飞机,一开始这些飞机只能发射普通的子弹,升到第二级时可以发射导弹,升到第三级时可以发射原子弹 // 首先是原始的飞机类 var Plane = function(){ } Plane.prototype.fire = function(){ console.log( '发射普通子弹' ); } // 接下来增加两个装饰类,分别是导弹和原子弹: var MissileDe…