1.
定义类
在
javascript
中定义类的方式有好几种,
prototype
也提供了一种定义类的方法。
var Shape = Class.create();
Shape.prototype = {
initialize:function(color){
this.color = color;
alert('in initialize');
},
draw:function(){
alert("in draw");
alert(this.color);
}
}
var shape = new Shape('red');
shape.draw();
initialize
是
Shape
的构造器。
2.
类继承
我们现在有一个
Circle
继承了
Shape
并增加了半径的属性。代码如下:
var Circle = Class.create();
Circle.prototype = Object.extend(new Shape(),{
initialize:function(color,radius){
alert('in Circle initialize');
this.color = color;
this.radius = radius;
},
drawCircle:function(){
alert("in drawCircle");
alert("color:"+this.color);
alert("radius:"+this.radius);
}
})
var circle = new Circle("green",10);
circle.drawCircle();
circle.draw();
Circle
内的
this.color
是从父类继承下来的,
new Circle("green",10)
的时候父类的构造函数将首先别执行,但这时的
color
的值是
undefine
,接着执行子类的构造函数
color
将被赋值为
“
green”.