jquery和dwz源码分析

jquery和dwz源码分析

ID:1121486

大小:116.00 KB

页数:9页

时间:2017-11-07

jquery和dwz源码分析_第1页
jquery和dwz源码分析_第2页
jquery和dwz源码分析_第3页
jquery和dwz源码分析_第4页
jquery和dwz源码分析_第5页
资源描述:

《jquery和dwz源码分析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、jQuery和DWZ的源码分析报告专业软件工程班级嵌入1112班学号201111701428姓名张钦城2014年04月28日jQuery源码分析1,打开jQuery源码,首先你会看到这样的代码结构:(function(window, undefined ){    //jquerycode})(window); 这是一个自调用匿名函数。在第一个括号内,创建一个匿名函数;第二个括号,立即执行。通过定义一个匿名函数,创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏全局的命名空间。这点非常有用也是一个JS框架必须支持的功能,jQ

2、uery被应用在成千上万的JavaScript程序中,必须确保jQuery创建的变量不能和导入他的程序所使用的变量发生冲突。非匿名函数的类似写法如下(functiontest(){alert('test');})();所有的jquery代码都放在该匿名函数里,避免了命名冲突。但有两个要单独处理:'jQuery'和'$'//MapoverjQueryincaseofoverwritevar_jQuery=window.jQuery,//Mapoverthe$incaseofoverwrite_$=window.$;varjQuery=wi

3、ndow.jQuery=window.$=function(selector,context){//ThejQueryobjectisactuallyjusttheinitconstructor'enhanced'returnnewjQuery.fn.init(selector,context);};noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;returnjQuery;},假如没有执行noConflict,则原来定义的$或jQuery(如果定义了

4、的话)会被一个新函数覆盖,只在内部留一个原来的引用(名叫_$或_jQuery)。如果要兼容原来的$,则执行jQuery.noConflict(),然后只能用jQuery的写法;极端情况:"jQuery"也被占用了,又要兼容,那么执行varmyJQ=jQuery.noConflict(true),以后全用myJQ的写法。注意:这时jquery.js要放在其他js的后面。2,定义jQuery的构造和原型函数,这个过程同时定义了prototype的别名为fn:jQuery.prototype=jQuery.fn。jQuery对象的原型prot

5、otype包括了诸多的核心方法和属性:initjquery当前的版本号size返回了length属性lengthgeteach...定义完了以后必须写以下代码,//GivetheinitfunctionthejQueryprototypeforlaterinstantiation(晚初始化?)jQuery.fn.init.prototype=jQuery.fn;jQuery.prototype.init(selector,context)是jQuery对象的一个成员函数,但是在jQuery构造函数中总是会执行这个函数,所以说"它是加强的

6、构造函数(initconstructor'enhanced')。因为在执行构造函数jQuery时总是会执行它。这也是很多框架的典型做法。jQuery有3个身份,类,对象,函数(构造函数)。如果find是对象的方法,即类似于jQuery.find=function(){}那么就应该使用jQuery.find();如果find是类的成员函数,即类似于jQuery.prototype.find=function(){}那么必须通过jQuery()返回jQuery实例,再调用find方法,即jQuery().find()。3,jQuery对象不

7、是通过 new jQuery 创建的,而是通过 new jQuery.fn.init 创建的 var jQuery= function(selector,context){       return new jQuery.fn.init(selector,context,rootjQuery);}jQuery对象就是jQuery.fn.init对象如果执行newjQeury(),生成的jQuery对象会被抛弃,最后返回 jQuery.fn.init对象;因此可以直接调用jQuery(selector,context),没有必要使用new

8、关键字先执行 jQuery.fn=jQuery.prototype,再执行 jQuery.fn.init.prototype=jQuery.fn,合并后的代码如下:jQuery.fn.init.protot

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

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

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