注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】jquery库分析  

2011-09-30 17:30:26|  分类: javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

看我的总结的使用,结合到这篇文章看http://www.cnblogs.com/pencilword/archive/2010/10/06/1844496.html,更容易看懂我写的。

0:先明确一些概念:
在jquery手册里插件机制里有:
jQuery.extend(object)     扩展jQuery对象本身。
jQuery.fn.extend(object)  用来扩充jQuery对象,(扩展 jQuery 元素集来提供新的方法)

什么是jQuery对象本身,什么是jQuery对象,带着这两个疑问,进行分析

转载请注明出处:http://csq-3.blog.163.com/blog/static/38738439201183053026230/  铜豌豆
深入研究,测试deom:
1:jquery变量本身是一个函数,这里一定要明确,这里的jquery函数就是jquery对象本身,jquery函数的实例就是jquery对象。估计有些朋友无法理解,无法理解多半js面向对象知识熟悉对不够,也就js对象方式连续写少了。

2:jquery实例$()或者jquery()实际是实例化jquery函数的过程,而函数返回的实例实际是jquery.fn.init函数return的对象。

3:在jquery.fn.init里,对不同参数做了判断,执行对应逻辑返回对应的对象,也就是,jquery手册核心函数里提供的几种参数方式。这里要说下js函数的特殊性,js函数是可以不定义参数,而在函数里面可以取的参数的,这样参数的多少就是随机不定的也可以。这里jquery使用了这个特性。

4:还有就是jquery里面有很多这样的写法,注意就行了
jQuery.fn = jQuery.prototype = function(){..}
jQuery.extend = jQuery.fn.extend = function() { ...}
等,其实这里就看的出来jQuery.fn和jQuery.prototype关系那些


最后说下开文的疑问
使用我简单写的这个案例来说明下jquery:
       
 //等于jquery变量,也是个函数,对象本身
 var obj = function(){return obj.fn.init();};
              
  //等于jquery.fn,模拟返回的是dom对象
  obj.fn = {init:function(){return {s:"s"}}};
  //等于jquery函数对象本身的其他属性函数
  obj.min = function(){return "s";};

        //等于外部的插件引入的对象
        var test={max:function(){return "ss";}};  
  
  //等于jquery.extend功能是增加函数本身对象的属性函数而不是实例对象的属性
  for(var member in test)
  {
   obj[member] = test[member];
  };

    console.log(obj);//等于jquery,也是个函数,对象本身
    console.log(obj()); //等于jquery()也就是$(),是实例jquery对象
    console.log(obj.min());//等于使用jquery函数的属性函数
    console.log(obj.max());//等于使用扩展jQuery对象本身的属性函数

    用来扩充jQuery对象,也就是增加obj.fn.int 里的对象,也就是把你写的对象,增加到obj.fn.int 属性里。

 

 

    jquery库本身是做了很多封装的,他的结构是下面这样的:
  var obj = (function(){
        里面才是我上面写的那些,他做了一些业务处理,把里面局部变量obj函数属性转成对象付给了外面的全局变量obj
     在里面的细节我没有花费时间去研究了。
  }

  评论这张
 
阅读(179)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018