JavaScript面向对象的继承机制实现方式

方法一: 对象冒充(用这种方法还可以实现多重继承)
其原理如下:构造函数使用this关键字给所有属性和方法赋值(即采用类声明的构造方式)。因为构造函数只是一个函数,所以可以使ClassA的构造函数成为ClassB的方法,然后调用它。ClassB就会收到ClassA的构造函数中定义的属性和方法。

方法二:利用call()和apply()方法进行调用。

方法三:原型链(prototype)

方法四:混合方式
问题: 对象冒充的主要问题是必须使用构造函数方式,这不是最好的选择,如果使用原型链,就无法使用带参数的构造函数了。因此选择了混合方式来兼用两者。

实例:
 
var PolygonCls=function(iSides)
{
    this.sides=iSides;
}
PolygonCls.prototype.getArea=function()
{
    return 0;
};

var TriangleCls=function(iBase,iHeight)
{
    PolygonCls.call(this,3);
    this.base=iBase;
    this.height=iHeight;
}
TriangleCls.prototype=new PolygonCls();
TriangleCls.prototype.getArea=function()
{
    return 0.5*this.base*this.height;
};

var RectangleCls=function(iLength,iWidth)
{
    PolygonCls.call(this,4);
    this.length=iLength;
    this.width=iWidth;
}
RectangleCls.prototype=new PolygonCls();
RectangleCls.prototype.getArea=function()
{
    return this.length*this.width;
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值