jquery核心源码解读

jquery核心源码解读

ID:33678679

大小:108.00 KB

页数:13页

时间:2019-02-28

jquery核心源码解读_第1页
jquery核心源码解读_第2页
jquery核心源码解读_第3页
jquery核心源码解读_第4页
jquery核心源码解读_第5页
资源描述:

《jquery核心源码解读》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、总体架构jQuery是个出色的javascript库,最近结合它写javascript,看了下源码。先从整体、全局的看,jQuery的源码几乎都在下面的代码中:(function(){//……})();第一个括号里面是个匿名函数,第二个括号表示马上执行第一个括号里面的代码。首先明白,javascript里面是没有命名空间的,要保证你的javascript函数、对象与其他的不冲突,这里用了javascript的一个技巧:你的所有javascript函数、对象都在一个匿名函数里面定义,确保了所定义的

2、函数、对象的有效范围,起到了命名空间的作用。既然作用范围在这个匿名函数中,怎么被别人使用呢?下面看它的下面代码:varjQuery=window.jQuery=function(selector,context){//……};这里让jQuery库中最重要的对象jQuery成为了window对象的一个属性,这样就可以在其他地方像使用document(document也是window的一个属性)一样使用jQuery了。也许使用过jQuery的朋友惊讶-我没有使用jQuery对象,一直使用$的。没错,

3、那是jQuery的同名对象:window.$=jQuery;现在明白了吧。执行过程分析JavaScript是一门基于对象的语言,而它的对象技术的实现又和其他语言有着很大的差异,在JavaScript中,一个类的定义一般采用下面这种模式(我所看到的)://定义一个构造函数;testClass(param1,param2){this.attr1=param1;this.attr2=param2;...}//在prototype对象上扩展,加上相应的方法;testClass.prototype={Me

4、thod1:function(){...},Method2:function(){...},...}//定义一个实例;vartest=newtestClass();在jQuery.js中,同样也是这种模式,只不过它要复杂很多,而且它还定义了一个jQuery.extend()的静态方法来扩展类的功能,jQuery.js代码执行过程完整分析如下://防止多次载入而进行jQuery对象的判断;if(typeofwindow.jQuery=="undefined"){window.undefined=w

5、indow.undefined;//jQuery的构造函数;varjQuery=function(a,c){...};//jQuery的命名空间$;if(typeof$!="undefined")jQuery._$=$;var$=jQuery;//给jQuery的prototype增加一些基础方法和属性;//其中有些方法是调用下面的扩展方法实现的;//注意下面的jQuery.fn=jQuery.prototype;jQuery.fn=jQuery.prototype={each:function

6、(fn,args){...},find:function(t){...},...};//jQuery实现继承的方法;jQuery.extend=jQuery.fn.extend=function(obj,prop){...};//实现一些基础的函数,有大部分是上面调用;jQuery.extend({init:function(){...},each:function(obj,fn,args){...},find:function(t,context){...},...});//浏览器版本的检测;

7、newfunction(){jQuery.browser={safari:...,opera:...,msie:...,mozilla:...};...};//jQuery.macros扩展,主要用于jQuery.init(),进行jQuery的初始化;jQuery.macros={filter:[...],attr:{...},each:{...},...};//jQuery初始化;jQuery.init();//实现jQuery的重要方法ready();jQuery.fn.extend({r

8、eady:function(f){...}...};//上面ready()方法的具体实现;jQuery.extend({ready:function(){...},...};//对浏览器某些事件进行绑定和解绑定;newfunction(){...jQuery.event.add(window,"load",jQuery.ready);};//当IE浏览器关闭时,清除上面绑定的事件,防止内存泄漏;if(jQuery.browser.msie)jQuery(window).unload(...);/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。