JavaScript中的面向对象----类
2010-09-14 13:24:12 来源:WEB开发网优点:看起来和更像一个类 声明实例用new运算符
缺点:对象的函数会重复生成
3、原型方式
functionCar(){
}
Car.prototype.color="red";
Car.prototype.doors=4;
Car.prototype.mpg=23;
Car.prototype.showColor=function(){
alert(this.color);
}
varoCar1=newCar();
oCar1.showColor();
alert(oCar1instanceofCar);
原理:js中的prototype
优点:避免了函数的重复创建
缺点:没有带参数的构造函数 属性如果是引用类型(比如Array),那么一个对象的属性改变,另外一个对象的同一个属性也会跟着改变
4、构造函数/原型方式
functionCar(sColor,iDoors,iMpg){
this.color=sColor;
this.doors=iDoors;
this.mpg=iMpg;
}
Car.prototype.showColor=function(){
alert(this.color);
}
varoCar1=newCar("red",4,23);
oCar1.showColor();
alert(oCar1instanceofCar);
优点:避免了函数的重复创建 并且避免了构造函数方法的引用类型属性的缺点
缺点:方法在类的外边定义的
5、动态原型方式
functionCar(sColor,iDoors,iMpg){
this.color=sColor;
this.doors=iDoors;
this.mpg=iMpg;
if(typeofCar._initialized=="undefined"){
Car.prototype.showColor=function(){
alert(this.color);
}
Car._initialized=true;
}
}
varoCar1=newCar("red",4,23);
oCar1.showColor();
alert(oCar1instanceofCar);
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接