分享

JS类的继承

 热爱IT 2012-04-11
今天小云复习下JS类的继承,以前看《JS高级程序教程》里讲有,平时很少用,都忘记的差不多了,进入话题,上代码。
对象冒充和原链型的方式
<script language=”JavaScript”>
//Fruit构造函数
function Fruit(name,home) {
//设置属性的值
this.name=name;
this.home=home;
}
//设置Fruit的方法
Fruit.prototype.showHome=function() {
alert(this.home);
}

//Apple构造函数
function Apple(color,weight) {
//对象冒充实现继承Fruit的属性
Fruit.call(this,”Apple”,”china”);
//添加新的属性与方法
this.color=color;
this.weight=weight;
}
//原型链实现继承Fruit的方法
Apple.prototype = new Fruit(“Apple”,”china”);
//设置Apple的方法
Apple.prototype.showColor=function() {
alert(this.color);
}
//创建一个Fruit对象
var objFruit = new Fruit(“Orange”,”USA”);
//创建一个Apple对象
var objApple = new Apple(“red”,50);
objFruit.showHome(); //输出”USA”
objApple.showHome(); //输出”china”
objApple.showColor(); //输出”red”
</script>

上面是最好的一种方式,下面的单独使用对象冒充的方式
<script language=”JavaScript”>
//Fruit构造函数
function Fruit(name,home) {
   //设置属性的值
   this.name=name;
   this.home=home;
   //设置方法
   this.showHome=function() {
    alert(this.home);
   }
}
//Apple构造函数
function Apple(color,weight) {
   //实现继承自Fruit
   //注销以下三行———–(1)方式————————————
   //this.inheritMethod=Fruit;
   //this.inheritMethod(“Apple”,”china”);
   //delete this.inheritMethod;
   //换用如下两行即可
   //定义一个参数数组————–(2)方式———————
   //var parms = new Array(“apple”,”china”);
   //Fruit.apply(this,parms);
   //——————————————–(3)方式———————–
   Fruit.call(this, “Apple”, “china”);
   //添加新的属性与方法
   this.color=color;
   this.weight=weight;
   //添加新的方法
   this.showColor=function() {
    alert(this.color);
   }
}
//创建一个Fruit对象
var objFruit = new Fruit(“Orange”,”USA”);
//创建一个Apple对象
var objApple = new Apple(“red”,50);
objFruit.showHome(); //输出”USA”
objApple.showHome(); //输出”china”
objApple.showColor(); //输出”red”
</script>
下面是原链型的使用
<script language=”JavaScript”>
//Fruit构造函数
function Fruit(name,home) {
   //设置属性的值
   this.name=name;
   this.home=home;
   //设置方法
   this.showHome=function() {
    alert(this.home);
   }
}
//Apple构造函数
function Apple() {

}
//实现继承自Fruit
Apple.prototype = new Fruit(“Apple”,”china”);
//添加新的属性与方法
Apple.prototype.color=”red”;
Apple.prototype.weight=30;
//添加新的方法
Apple.prototype.showColor=function() {
alert(this.color);
}
//创建一个Fruit对象
var objFruit = new Fruit(“Orange”,”USA”);
//创建一个Apple对象
var objApple = new Apple(“red”,50);
objFruit.showHome(); //输出”USA”
objApple.showHome(); //输出”china”
objApple.showColor(); //输出”red”
</script>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多