• jQuery的无new构建


    正常面向对象的写法:

      var cJquery = function(){

        //构造函数体

      };

      cJquery.prototype = {

        name : function(alert("chenliang");)

        age : function(alert(27);)

      }

      var c = new cJquery();

      c.name();

    使用jQuery时,并不会使用new来创建jQuery对象,而是类似一个工厂,不断的根据不同的需求产出不同的jQuery对象。

    例如:

      var cJquery = function(){

        new cJquery();

      }

      因为new的其中一步就是执行构造函数体,所以,这种写法会造成无限循环

    因此,jQuery采用了返回一个假jQuery对象来代替jQuery对象的方法(个人理解,不知道对不对)

      var jQuery = function(){

        return new jQuery.prototype.init();

      }

      jQuery.prototype = {

        init : function(){

          return this;

        },

        name : function(){alert("chenliang");}

      }

      但这种做法的后果是,jQuery返回的假jQuery对象(init对象),无法访问jQuery的原型对象上的方法。

      因此jQuery做了最后一步处理:

      jQuery.protype.init.protype = jQuery.protype;

  • 相关阅读:
    树链剖分
    后缀自动机
    莫队算法。
    线性递推BM模板
    笛卡尔积
    2019牛客暑期多校训练营(第三场) J LRU management 模拟链表操作
    线性基
    bitset 位运算
    Lindström–Gessel–Viennot lemma定理 行列式板子
    三角形
  • 原文地址:https://www.cnblogs.com/charling/p/3395608.html
Copyright © 2020-2023  润新知