日期:2014-05-16 浏览次数:20503 次
1.工厂模式创建对象--无参构造方法
?
// 工厂方式有一个弊端,就是每个对象被实例化时,都会实例化类中的方法
// 会造成每个对象都有独立的方法版本
function createStudentFactory()
{
var stu = new Object();
stu.Id = "1";
stu.Name = "stu";
stu.Skill = "Ajax & javaScript";
stu.showSkill = function()
{
alert(stu.Skill);
}
return stu;
}
//不支持方法的重载哟!
//function createStudentFactory(id,name,skill)
//{
//}
var stu = createStudentFactory();
stu.showSkill();
?
2.工厂模式2--带参构造方法
function createStudentFactory(id,name,skill)
{
var stu = new Object();
stu.Id = id;
stu.Name = name;
stu.Skill = skill;
stu.showSkill = function()
{
alert(stu.Skill);
}
return stu;
}
var stu2 = createStudentFactory("2","zxh","java");
stu2.showSkill();
?
3.混合方式--属性私有,方法共有
function Student(id,name,skill)
{
this.Id = id;
this.Name = name;
this.Skill = skill;
this.Likes = new Array("coding","game");
}
Student.prototype.showSkill = function()
{
alert(this.Skill);
}
var stu1 = new Student(1,"zxh","Ajax");
var stu2 = new Student(2,"zxh2","Java");
stu2.Likes.push("travel");
stu1.showSkill();
stu2.showSkill();
alert(stu1.Likes);
alert(stu2.Likes);
?
?