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 !!!

  • 相关阅读:
    LeetCode Ugly Number
    LeetCode Missing Number
    拓扑排序
    不相交集的求并算法(按集合大小求并+按高度求并)
    数据结构排序总结
    基数排序
    java 发展简史
    java 白皮书的关键术语
    包+类导入+静态导入+类放入包中+包作用域
    关于二叉堆(优先队列)的其他操作及其应用
  • 原文地址:https://www.cnblogs.com/lyjfight/p/13815584.html
Copyright © 2011-2022 走看看