手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
摘要:工厂方式创建并返回特定类型的对象。复制代码代码如下:functioncreateCar(sColor,iDoors,iMpg){varoTe...

工厂方式

创建并返回特定类型的对象。

复制代码 代码如下:

function createCar(sColor,iDoors,iMpg){

var oTempCar=new Object();

oTempCar.color=sColor;

oTempCar.doors=iDoors;

oTempCar.mpg=iMpg;

oTempCar.showColor=function(){

alert(this.color);

}

return oTempCar;

}

调用示例:

复制代码 代码如下:

var oCar1=createCar("red",4,23);

var oCar2=createCar("blue",3,25);

oCar1.showColor();

oCar2.showColor();

缺点:方法重复创建了。如在上面的调用示例中,oCar1和oCar2均有自己的shoColor方法,但这个是可以共用的。

构造函数方式

示例:

复制代码 代码如下:

function Car(sColor,iDoors,iMpg){

this.color=sColor;

this.door=iDoors;

this.mpg=iMpg;

this.showColor=function(){

alert(this.color);

}

}

调用示例:

复制代码 代码如下:

var oCar1=new Car("red",4,23);

var oCar2=new Car("blue",3,25);

缺点:跟工厂方式一样,方法重复创建了。

原型方式

本方式利用了对象的 prototype 属性,可把它看成创建新对象所依赖的原型。这里用空构造函数来设置类名,然后所有的属性和方法都被直接赋予 prototype 属性,重写前面的例子,代码如下:

复制代码 代码如下:

function Car(){

}

Car.prototype.color="red";

Car.prototype.doors=4;

Car.prototype.mpg=23;

Car.prototype.showColor=function(){

alert(this.color);

}

调用:

复制代码 代码如下:

var oCar1=new Car();

var oCar2=new Car();

缺点:不能通过给构造函数传递参数初始化属性的值

混合的构造函数/原型方式

联合使用构造函数和原型方式,示例如下:

复制代码 代码如下:

function Car(sColor,iDoors,iMpg){

this.color=sColor;

this.door=iDoors;

this.mpg=iMpg;

}

Car.prototype.showColor=function(){

alert(this.color);

}

调用示例:

复制代码 代码如下:

var oCar1=new Car("red",4,23);

var oCar2=new Car("blue",3,25);

优点:无内存浪费,创建方便。

这种方式是ECMAScript采用的主要方式。

动态原型方法

使用混合的构造函数/原型方式把对象的方法放在了对象外面定义,让人感觉不是那么面向对象,没有在视觉上进行很好的封装,因此产生了动态原型方法:

复制代码 代码如下:

function Car(sColor,iDoors,iMpg){

this.color=sColor;

this.door=iDoors;

this.mpg=iMpg;

if(typeof Car._initialized=="undefined"){

Car.prototype.showColor=function(){

alert(this.color);

};

Car._initialized=true;

}

}

作者:Artwl

出处:http://artwl.cnblogs.com

【JavaScript高级程序设计 阅读笔记(十三) js定义类或对象】相关文章:

JavaScript Date对象详解

Javascript随机显示图片的源代码

JavaScript实现表格点击排序的方法

Javascript进制转换实例

JavaScript里实用的原生API汇总

Javascript中For In语句用法实例

javascript动态设置样式style实例分析

JavaScript中操作字符串小结

JavaScript 预解析的原理及实现

用JavaScript实现对话框的教程

精品推荐
分类导航