面向对象之工厂模式和构造函数模式

工厂模式:用函数来封装,以特定接口来创建对象的细节。

创建的对象是Object类型
function person(name, age , job){
    var o  =new Object() ;
    o.name = name;
    o.age = age ;
    o.job = job ;
    o.sayName = function(){
        alert(this.name);
    };
    return o ;



var person1 = new person("cancan",21,"student");
var person2 = new person("xiaoma",45,"teacher");

   console.log(person1 instanceof person); // false
   console.log(person1 instanceof Object);//true
   console.log(person instanceof person); //true



构造函数模式:构造函数可以创建特定类型的对象,自定义对象的属性和方法

function person(name,age,job){
    this.name = name ;
    this.age = age ;
    this.job = job ;
    this.sayName = function(){
        alert(this.name);
    };

}

var person1 = new person("cancan",21,"student");
var person2 =new person("xiaoma",45,"teacher");

  console.log(person1 instanceof person); // true
  console.log(person instanceof Object); // true

构造函数与工厂函数之间不同:
1.工厂函数针对的都是Object的对象模型,而构造函数可以匹配自定义的对象模型(如上例)
2.工厂函数创建对象,以及要有有返回值,构造函数不需要,但他们均继承于Object
 
 

 

转载于:https://www.cnblogs.com/cty97/p/6785441.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值