面向对象的基础就是定义类,下面是定义一个类的例子,它有属性、方法、静态属性和静态方法
我采用的是混合的构造函数/原型方式,这种方式是最优的方式。
即用原型方式定义类的函数属性,用构造函数的方式定义类的非函数属性。
//定义一个Dog 类,他有一个属性name,一个静态属性皮肤(skin)有毛,一个方法会叫(wow),一个静态方法吃(eat)
function Dog(_name) {
//属性
this.name = _name;
}
Dog.prototype.wow= function(){
alert(this.name+"叫:wow");
}
//静态属性
Dog.skin = "有毛";
//静态方法,吃
Dog.eat = function(){
alert("会吃");
}
//实例化测试
var myDog = new Dog("旺财");
myDog.wow();
alert(myDog.name);
Dog.eat();
alert(Dog.skin);
下面是继承的实例
//有一条疯狗,继承自狗,它除了有名字外,还有颜色,它叫起来就连续叫两声
function MadDog(_name, _color)
{
//继承name 属性
Dog.call(this, _name);
//添加自己的属性
this.color = _color;
}
//继承方法
MadDog.prototype = new Dog();
//重写方法
MadDog.prototype.wow = function() {
alert(this.name + "叫:wow,我是:"+this.color);
alert(this.name + "叫:wow,我是:"+this.color);
}
//测试
var myMadDog = new MadDog("阿福", "黄色");
myMadDog.wow();
var myDog = new Dog("旺财");
myDog.wow();
