jquery 代码阅读 —— jquery.js
为了打通任通二脉,准备阅读jquery.js, 顺便写点注释
从入口文件jquery.js中可以看出,jquery首先加载的是core.js,共加载了32个模块,封装在了jQuery中。
window.jQuery = window.$ = jQuery
其次查看核心代码阅读: core.js
https://github.com/purejade/jquery/blob/master/src/core.js (参考github上代码)
jQuery 源码学习
基本知识准备
1. javascript 语法
2. 模块加载,define 或者 require
- 利用AMD模式异步加载模块
3. 常用函数,如apply、call,对象方法复用
4. prototype
Core.js 源码
1. jQuery
3. jQueyr.fn
2. jQuery.extend和jQuery.fn.extend
####
core.js中实现了jQuery对元素的获取
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},
每次获取一个elem元素,都会重新生成。
jQuery.extend = jQuery.fn.extend函数实现,将有利于jQuery类进行插件扩展;其中jQuery.extend支持静态函数扩展,仅jQuery可用;而jQuery.fn.extend支持成员函数的扩展.
jQuery.extend扩展了jQuery常用的函数,如isNumeric,isWindow,isFunction,isPlainObject,isEmptyObject,type, globalEval,each,trim,makeArray,inArray,merge,map,grep etc...
根据jQuery对外提供的extend函数,可以对jQuery进行扩展,可以写一些需要的插件。
具体的格式为:
(function($){
$.extend({})
}).(jQuery)