|              以下为引用的内容:                 //普通怪物 继承 Role     function Monster(name, hp, pd) {         Role.apply(this, arguments); //通过apply实现继承,强大的apply使Monster具备了Role的所有属性与方法,apply和call是个神奇的东西,大家有兴趣自己谷歌。     }     //玩家 继承 Role     function Player(name, hp, mp, pd, md, exp) {         Role.apply(this, new Array(name, hp, pd)); //通过apply实现继承,并传参赋值         this.MP = mp; //属性-魔法值         this.MagicDamage = md; //属性-魔法攻击力         this.Exp = exp; //属性-经验值         //方法-魔法攻击(r:被攻击目标)         this.MagicAttack = function(r) {             if (this.MP > 9) {                 alert(this.Name + " 魔法攻击 " + r.Name + "\r\n HP - " + this.PhysicalDamage + "\r\n MP - 10 , Exp + 10");                 r.HP = r.HP - this.MagicDamage;                 this.MP -= 10;                 this.Exp += 10;             }             else                 alert("魔法值不够");         };         //这里重写 PhysicalAttack 方法,很不方便!不知道有好的方法没???         this.PhysicalAttack = function(r) {             alert(this.Name + " 物理攻击 " + r.Name + "\r\n HP - " + this.PhysicalDamage + "\r\n Exp + 10");             r.HP = r.HP - this.PhysicalDamage;             this.Exp += 10;         };     }     var xiaoxiao = new Player("小小", 10000, 500, 200, 100,0);     var dog = new Monster("狗狗", 600, 20);     xiaoxiao.PhysicalAttack(dog);     xiaoxiao.MagicAttack(dog);     alert("狗狗当前HP:" + dog.HP);     alert("小小当前Exp:" + xiaoxiao.Exp);              |