您的位置:首页 > Web前端 > JavaScript

JavaScript的多态经典案例

2012-04-04 19:58 288 查看
JS的面向对象编程特性的另外一个就是多态性,这个多态性可以是JS这样的弱数据类型语言的强项。几乎是天然支

持的。而且对于代码的移植和继续开发以及代码的冗余有非常大的好处,下面我们来看一个例子,代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test2.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function Master(){
//主人类,给动物喂食
this.feed=function(animal,food){
document.writeln(animal.constructor+"<br/><br/>");
document.writeln("主人给"+animal.name+"喂"+food.name+"<br/><br/>");
}
}

//食物类
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 Animal(name){
this.name=name;
}

function Cat(name){
this.animal=Animal;
this.animal(name);
}

function Dog(name){
this.animal=Animal;
this.animal(name);
}

var cat = new Cat("小猫");
var dog = new Dog("小狗");
var fish = new Fish("小鱼");
var bone = new Bone("骨头");

var master = new Master();
master.feed(cat, fish);
master.feed(dog, bone);
</script>
</head>

<body>

</body>
</html>


可以看到,虽然Master这个类不知道他到底调用的是谁的方法,但是通过多态这个东西,他还是很轻松的知道最后调

用的是谁,所以说这个多态的证明是显而易见的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: