WEB开发网
开发学院网页设计JavaScript JavaScript OOP(2)定义JavaScript类 阅读

JavaScript OOP(2)定义JavaScript类

 2010-09-14 13:42:35 来源:WEB开发网   
核心提示: 带参工厂方法的效果,如图5.3所示:图5.3 带参工厂方法的效果图可以清楚的看到,JavaScript OOP(2)定义JavaScript类(2),对话框显示的正是工厂方法中传入的skill参数的值,还有一种与传统面向对象语言更相似的创建对象的方法,还有一种方式可以避免这种弊端,在开发中

带参工厂方法的效果,如图5.3所示:

JavaScript OOP(2)定义JavaScript类

图5.3 带参工厂方法的效果图

可以清楚的看到,对话框显示的正是工厂方法中传入的skill参数的值。

还有一种与传统面向对象语言更相似的创建对象的方法,即构造函数方式。构造函数方式很像工厂方式,但是构造函数方式可以于new关键字联用。构造函数方式示例代码如下:

function StudentConstract(id,name,skill)
{
this.ID=id;
this.Name=name;
this.Skill=skill;
this.ShowSkill=function()
{
window.alert(this.Skill);
}
}
var stu=new StudentConstract(1,"hongbo","Ajax");//构造函数与new关键字联用
stu.ShowSkill();

在上例中,可以看到构造函数和new关键字的联用进行对象实例化。但是构造函数方式和工厂方式都1个不可以忽略的弊端,每个对象被实例化时,都会实例化类中的方法。这个弊端会造成每个对象都有独立的方法版本。

实际上,还有一种方式可以避免这种弊端。在开发中,可以使用原型方式进行对象的创建。可以通过以下代码实现原型方式:

function Student()
{
//这里可以看做是Student的构造函数
}
Student.prototype.Id="1";
Student.prototype.Name="Hongbo";
Student.prototype.Skill="Ajax";
Student.prototype.Likes=new Array("编码","游戏");
Student.prototype.ShowSkill=function()
{
alert(this.Skill);
}
var stu1=new Student();
stu.ShowSkill();
alert(stu.Likes);//注意这个消息框中的信息

上一页  1 2 3 4 5  下一页

Tags:JavaScript OOP 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接