• javascript创建对象的方法--工厂模式(非常好理解)


    javascript创建对象的方法--工厂模式(非常好理解)

    一、简介

    创建对象的方法

    本质上都是把"属性"和"方法",封装成一个对象

    创建对象的基本模式

    • 普通创建对象的方法,缺陷:
      • 如果创建多个对象会比较繁琐,效率低
      • 实例与原型之间,没有任何办法,可以看出有什么联系。

    工厂模式

    • 工厂模式:使用创建并返回特定类型的对象的工厂函数(其实就是普通函数,没啥区别,只是叫法不同)
    • 创建过程类似于工厂生产产品的过程,即:原材料--加工--产品...
    • 解决了多次重复创建多个对象的麻烦。
    • 问题:
      • 创建出的实例之间没有内在的联系,不能反映出它们是同一个原型对象的实例。
      • 创建对象的时候没有使用 new 关键字
      • 会造成资源浪费,因为每生成一个实例,都增加一个重复的内容,多占用一些内存。

    二、代码

     1 <!DOCTYPE html>
     2 <html lang="zh-cn">
     3 <head>
     4   <meta charset="utf-8">
     5   <title>课堂演示</title>
     6 </head>
     7 <body>
     8   <script>
     9   //基本模式
    10       var people1=new Object();
    11       people1.name='孙悟空';
    12       people1.weapon='金箍棒';
    13       people1.run=function(){
    14         return this.name+'的武器是'+this.weapon
    15       }
    16      // alert(people1.name) 
    17       //alert(people1.run()) //注意方法的调用需要加()
    18      //该方法如果创建多个对象就会比较繁琐,如下...... 
    19       var people2=new Object();
    20       people2.name='猪八戒';
    21       people2.weapon='钉耙';
    22       people2.run=function(){
    23         return this.name+'的武器是'+this.weapon
    24       }
    25 //工厂模式
    26       function creatPeople(name,weapon){
    27         var people=new Object() //可以类比为加工对象的原材料
    28         people.name=name;
    29         people.weapon=weapon;
    30         people.run=function(){
    31            return this.name+'的武器是'+this.weapon
    32         }  //以上步骤可以类比为加工对象的过程
    33         return people //注意一定要讲创建的对象返回 
    34         //可以类比为产品加工完毕出厂的工作
    35       }
    36        var wukong=creatPeople('孙悟空','金箍棒');
    37        var bajian=creatPeople('猪八戒','钉耙');
    38       //alert(wukong.run())
    39       //alert(bajian.run())
    40     //new 关键字
    41     function fun(){
    42       alert(this)
    43     }
    44     fun()
    45     new fun()
    46   </script>
    47 </body>
    48 </html>

    1、因为普通创建对象的方法繁琐重复效率低等诸多缺点,所以有了工厂模式

    2、工厂模式就是一个简单的工厂,也是一个简单的函数,提供参数,来给你创建对象

    3、工厂模式其实就是对普通创建对象进行了一点点的封装,很简单

    4、对象的实质是变量,方法的实质是函数,属性的实质也是函数,所以工厂模式的基础就是函数变量之间是可以相互嵌套的

    5、工厂模式就是用普通函数嵌套了 创建对象 

  • 相关阅读:
    JUnit5依赖注入与测试接口
    Python如何设计面向对象的类(下)
    JUnit5参数化测试的几种方式
    JUnit5的条件测试、嵌套测试、重复测试
    熬夜肝了一份 C++/Linux 开发学习路线
    适合普通大学生的 Java 后端开发学习路线
    二本,拿腾讯,阿里 offer 了
    适合普通大学生的前端学习路线
    41道计算机网络高频面试题(附带答案)
    在Rancher中修改K8S服务参数的万金油法则
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8978525.html
Copyright © 2020-2023  润新知