zoukankan      html  css  js  c++  java
  • javascript创建对象的方法--组合模式

    javascript创建对象的方法--组合模式

    一、总结

    0、作用:解决原型模式对象独有属性创建麻烦的问题

    1、组合模式使用普遍:jquery就是用的组合模式,组合模式使用非常普遍

    2、组合模式优点:a、支持传参  b、 解决内存浪费(共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式)

    3、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式

    二、javascript创建对象的方法--组合模式

    构造函数和原型组合模式

    这是目前最为常用的创建对象的方式。

    这种概念非常简单,即用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性(方法)。结果是,所有函数都只创建一次,而每个对象都具有自己的对象属性实例。

    此外,组合模式还支持向构造函数传递参数,可谓是集两家之所长。

    在所接触的JS库中,jQuery类型的封装就是使用组合模式来实例的!!!

    三、代码

     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   function Monster(){} 
    10     Monster.prototype={
    11         constructor: Monster, 
    12         name:'喽啰', 
    13         job:['巡山','打更'],
    14         run:function() {return this.name+'的工作是'+this.job }
    15     }
    16 //构造函数和原型组合模式
    17      function Monster(name,arr){//非共用
    18         constructor: Monster, 
    19         this.name=name
    20         this.job=arr
    21      } 
    22     Monster.prototype={//共用
    23       run:function() {return this.name+'的工作是'+this.job }
    24     } 
    25     var monsterI=new Monster('小旋风',['巡山','打更','砍柴'])
    26     var monsterII=new Monster('小钻风',['巡山','打更','挑水'])
    27     alert(monsterI.run())
    28     alert(monsterII.run())
    29   </script>
    30 </body>
    31 </html>

    1、组合模式的实现:共用的函数和属性用原型方式,非共用的的函数和属性用构造函数的方式

    2、this关键字:因为传参,所以this关键字

    3、原型中可以调用对象的非共用属性:原型中可以调用对象的非共用属性,用this关键字

    4、函数的定义和使用还是和之前一样

    5、原型方式:对象名.prototype={}

    6、构造器方式:constructor: Monster, 

    7、对比:注意组合模式和原型模式的对比

  • 相关阅读:
    jdk.exe转zip免安装
    jdk全版本下载链接
    Cesium primitive绘制折线和多边形
    sql调优的几种方式
    maven操作
    如何设计高并发系统?
    用友华表cell的程序发布
    OpenCV异常问题(一)
    js jquery window 高 宽
    sql中游标的使用一
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8994287.html
Copyright © 2011-2022 走看看