工厂模式与自定义函数的区别与 联系

工厂模式简介:

工厂模式是一种软件工程领域一种广为人知的设计模式,这种模式抽象了创建对象的过程,因为ECMAScript无法穿类,所以开发人员就发明一个函数,用函数来封装以特定的接口创建对象

一,工厂模式创建对象 :

理解:通过函数封装对象,并通过调用函数来调用封装的对象

通过调用多次函数从而创建多次不同的对象。

function createObject(name,age) {
      var obj=new Object();
      obj.name=name;
      obj.age=age;
      obj.sayHi=function () {            //添加方法
        console.log("您好,我叫"+this.name+"我今年"+this.age);
      };
      return obj;
    }
    var per1=createObject("卡卡西",20);//调用函数
    per1.name;      //调用属性
    per1.sayHi();  //调用方法
    console.log(per1 instanceof Object);//true

注意点:工厂模式有返回值,因为通过调用函数会把把函数返回值(这里就是函数封装的对象)给返回,然后我们通过声明一个变量去接收,此时变量里面存的就是对象,然后通过对象调用属性与方法,如果没有返回值就会报错。

缺点:通过instanceof 检测类型为Object类型,但是没有具体知道这个对象属于什么 类型的。

二,自定义构造函数创建对象:

通过new的方式创建多次不同的对象

    function Dog(name,age) {
      this.name=name;
      this.age=age;
      this.eat=function () {
        console.log("喜欢吃大骨头");
      }
    }
    var Obj=new Dog("小黄","5");//实例化对象
    Obj.name;         //调用属性
    Obj.eat();       //调用方法
    console.log(Obj instanceof Dog);//true

可以具体知道当前对象是什么类型的通过instanceof 可以判断数据类型 。 

 

总结:

  • 工厂模式创建对象:                                           自定义构造函数创建对象:

  • 函数名是小写 ;                              ------------------------------ >          函数首字母名字大写;                                    
  • 函数里面有new ;                           ------------------------------ >          函数里面没有new;
  •  函数有返回值;                              ------------------------------ >          函数里面没有返回值;
  • new之后的对象就是当前的对象 ;  ------------------------------ >          this就是当前的对象 ;        
  •  直接调用函数就可以创建对象        ------------------------------- >         通过new的方式创建对象

 共同点:都是函数,都可以创建对象,都可以传入参数。

本人小白学习 javascript 与 php 请大家多多关注有更多的本人学习的心得分享出来 ! 大家多多支持

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值