javascript继承机制

javascript继承机制
通过下面的例子来说明js的继承机制。js通过 function来声明一个类,同"class".

function Circle(radius)
{
    this.r = radius;
}

Circle.PI = 3.14159;

Circle.prototype.area = function(){
    return Circle.PI * parseInt(this.r) * parseInt(this.r);
}

//定义ChildCircle子类
function ChildCircle(radius){
    this.root=Circle;
    this.root(radius);//调用父类的构造函数,也可以通过call方式调用
//    Circle.call(this,radius);
}

ChildCircle.prototype=new Circle();//声明继承,ChildCircle继承了Circle的所有方法

//子类覆盖父类的方法area
ChildCircle.prototype.area = function(){
    return 2 * parseInt(this.r) * parseInt(this.r);
}

var d = new ChildCircle(2);
alert(d.area());


以上是一个简单的例子来说明javascript也可实现面向对象的机制,关键看你如何应用。在设计较大规模的JS程序时,利用JS本身的特性(基于prototype的继承),借鉴面向对象编程的方法,模拟类的定义与继承机制,会使开发的JS程序具有更高的质量。

你可能感兴趣的:(javascript继承机制)