JavaScript OOP(2)定义JavaScript类
2010-09-14 13:42:35 来源:WEB开发网带参工厂方法的效果,如图5.3所示:
图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);//注意这个消息框中的信息
Tags:JavaScript OOP 定义
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接