ESSAY / NOTE

js的多态的经典案例

psb <script type="text/javascript"> // Master类 function Master(name){ this.nam=name; //方法[给动物喂食物] } //原型法添加成员函数 Master.prototype.feed=function (animal,food){ window.alert("给"+animal.name+" 喂"+ food.name); } function Food(name){ this.name=name; } //鱼类 function Fish(name){ this.food=Food; this.food(name); } //骨头 function Bone(name){ this.food=Food; this.food(name); } function Peach(name){ this.food=Food; this.food(name); } //动物类 function Animal(name){ this.name=name; } //猫猫 function Cat(name){ this.animal=Animal; this.animal(name); } //狗狗 function Dog(name){ this.animal=Animal; this.animal(name); } //猴子 function Monkey(name){ this.animal=Animal; this.animal(name); } var cat=new Cat("大花猫"); var fish=new Fish("黄花鱼"); var dog=new Dog("大花狗"); var bone=new Bone("猪骨头"); //创建一个主人 var master=new Master("Admin"); master.feed(dog,bone); //扩展 var monkey=new Monkey("金丝猴"); var peach=new Peach("仙桃"); master.feed(monkey,peach); </script> 总结:多态有利于代码的维护和扩展,这里我们可以考虑,如果食物 加入 桃子,动物加入 猴子,可以看到,Master的feed函数不需要的变化。