1、从github中把jquery的源码全部下载下来,其中的src文件夹,是jquery的所有功能文件夹,jquery现在开始把功能都进行模块化开发,支持amd和cmd。
jquery-master>src
2、分析文件
ajax——ajax功能
attribute——选择器功能
core——核心代码
css——css操作
data——文档处理
effect——特效
event——事件
exports——模块
mainipulation——Dom操作
queue——遍历
traversing——Dom遍历
var——赋值
3、jquery的依赖
jquery-master>src>jquery.js——这个文件中,是jquery所有依赖的js文件。
define(["./core",//核心代码"./selector","./traversing","./callbacks","./deferred","./core/ready","./data","./queue","./queue/delay","./attributes","./event","./event/alias","./manipulation","./manipulation/_evalUrl","./wrap","./css","./css/hiddenVisibleSelectors","./serialize","./ajax","./ajax/xhr","./ajax/script","./ajax/jsonp","./ajax/load","./event/ajax","./effects","./effects/animatedSelector","./offset","./dimensions","./deprecated","./exports/amd"], function( jQuery ) {return (window.jQuery = window.$ = jQuery);- //将jquery、$挂载到window下作为全局调用方法
});
4、是否要定制化,自己的jquery。在我的日常使用中,jquery的很多方法我会用不上,就比如说effect的一些奇怪效果,我不看源码,我还不知道有这个API存在。但是看到上面jquery的依赖,我就发现,jquery的定制化非常的差,但这也是没有办法,api太多,不可能每一个都单独设立文件。还是一点一点看了。