zoukankan      html  css  js  c++  java
  • jQuery.protoype.xxx=function(){}

    在的init就是fn和prototype的一个方法。想调用只能 jQuery.fn.init()或者是jQuery.prototype.init(),那怎么办呢?你看我们一般都是这样调用fn里面的函数,$().xxx(),那就要想办法在jQuery中返回fn或者是protoype对象,为了达到这个目的实际上return jQuery.prototype就可以实现,但是程序本身还需要执行init这个方法,那就是下边的代码起了作用,把fn在绑定到init的 prototype原型上,这时候就相当月申明了一个jQuery.fn.init类,而且原型指向fn对象,是不是就统一了?这句效果就相当于

    jQuery.fn.init=function(selector, context){

        //...................

               return jQuery().find(selectot);

       ////其他的fn方法

    }

         jQuery.fn.init.prototype = jQuery.fn;

    fn的init方法和大多数的方法又是返回jQuery数组对象,实现了连写,实际上这里 fn属性的定义完全可以去掉。jQuery.fn.init.prototype = jQuery.fn;可以改成jQuery.fn.init.prototype = jQuery.protoype;效果一样,以后的扩展函数可以写成jQuery.protoype.xxx=function(){}但是为了兼容版本就不得不这样写了。

    现在是不是大概有点明白了?这个只是从对象引用的角度分析,因为这样分析更容易接受,所以上边讲的调用都是静态调用,jQuery.fn.init();在静态调用的时候prototype就可以理解成一个静态的属性,如果加了new就不一样了,那就是类之间的继承,先做这样的测试

    var obj=new jQuery();obj.init();下篇再说继承关系。

  • 相关阅读:
    SQL SERVER 2016研究三
    SQL SERVER 2016研究二
    SQL SERVER 2016研究一
    codeforce div2 426 D. The Bakery
    bzoj2190: [SDOI2008]仪仗队
    长路
    codechef AUG17 T5 Chef And Fibonacci Array
    codechef AUG17 T4 Palindromic Game
    codechef AUG17 T3 Greedy Candidates
    汕头市队赛 SRM10 dp只会看规律 && bzoj1766
  • 原文地址:https://www.cnblogs.com/fx2008/p/2298529.html
Copyright © 2011-2022 走看看