设计模式之工厂模式

42 阅读1分钟
工厂模式—— 普通函数创建对象
 function creatPerson(name,age){
   var obj = new Object();
   obj.name  = name;
   obj.age = age;
   obj.say = function(){
     console.log(this.name);
   }
   return obj;
 }
  var a = creatPerson("Lyon",2019);
 // console.log(a);
工厂模式—— 构造函数
 function Person(name,age){
   this.name = name;
   this.age = age;
   this.say = function(){
    console.log(this.name);
    console.log(this.age);
  }
}
 var b1 = new Person("Ruo",8);
 var b2 = new Person("Ruo",8);
 // console.log(b1.constructor == b2.constructor)
 // console.log(b1.constructor == Person)
工厂模式3—— 构造函数 原型模式 推荐,性能较优**
 function Person(){

 }

 Person.prototype.name = "Nicholas";
 Person.prototype.age = 29;
 Person.prototype.job = "Software Engineer";
 Person.prototype.sayName = function(){
   alert(this.name);
 };
 var person1 = new Person();
 var person2 = new Person();
 person1.sayName(); //"Nicholas"
 person2.sayName(); //"Nicholas"
 console.log(person1.sayName  == person2.sayName// true