通过下面的例子来说明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程序具有更高的质量。