zoukankan      html  css  js  c++  java
  • javascript继承模式详解

    javascript继承模式有以下几种
    1.传统模式 -- 原型链 缺点: 过多的继承了没用的东西
    2.借用构造函数(常用) 缺点: 不能继承继承函数的原型 每次构造函数要多走一个函数
    3.共享模式(常用) 缺点: 不能随便改动自己的原型
    4.圣杯模式

    共享模式

    //共享模式
    Father.prototype.lastName = 'li'
    function Father() {
    
    }
    function Son() {
    
    }
    Son.prototype = Father.prototype  //直接让Son的原型等于Father的原型
    var father = new Father()
    var son = new Son()
    //两者构造出来的都是共用同一个原型
    //所以不能随便改动自己的原型

    圣杯模式

    //圣杯模式
    Father.prototype.lastName = 'li'
    function Father() {
    
    }
    function Son() {
    
    }
    function F() {} //中间层
    F.prototype = Father.prototype
    Son.prototype = new F()  //原型链
    //两者构造出来的都是共用同一个原型
    //修改Son的原型不会修改Father的原型

    封装圣杯模式继承方法

    //封装圣杯模式继承方法
    function inherit(Target, Origin) {
      function F() {}
      F.prototype = Origin.prototype
      Target.prototype = new F()
      Target.prototype.constructor = Target
      Target.prototype.uber = Origin.prototype  //为了知道最终继承的是谁,加了uber属性,有时需要知道最终继承的是谁可以用这个属性
    }

    雅虎封装圣杯模式继承方法

    //雅虎封装方法
    var inherit = (function(){
      var F = function() {}       //闭包, 变量私有化
      return function(Target, Origin) {
        F.prototype = Origin.prototype
        Target.prototype = new F()
        Target.prototype.constructor = Target
        Target.prototype.uber = Origin.prototype
      } }())

    end !!!

  • 相关阅读:
    【NXOpen.UF扩展】修改表达式
    NX二次开发 克隆
    C++手动加载CLR运行托管程序(CLR Hosting)
    C++/CLR 使用(VS2012,VS2013,VS2015)编写
    解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题,即include+lib环境变量配置
    NX 图标
    【错误分析】NX error status: 32
    NX CAM 读取加工参数
    CAM 模板样式表
    锁定NX原生界面 & 锁定界面更新
  • 原文地址:https://www.cnblogs.com/lyjfight/p/13815584.html
Copyright © 2011-2022 走看看