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);