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太多,不可能每一个都单独设立文件。还是一点一点看了。