爲了打通任通二脈,準備閱讀jquery.js, 順便寫點註釋javascript
從入口文件jquery.js中能夠看出,jquery首先加載的是core.js,共加載了32個模塊,封裝在了jQuery中。java
window.jQuery = window.$ = jQueryjquery
其次查看核心代碼閱讀: core.js git
https://github.com/purejade/jquery/blob/master/src/core.js (參考github上代碼)github
jQuery 源碼學習app
基本知識準備異步
1. javascript 語法函數
2. 模塊加載,define 或者 require學習
- 利用AMD模式異步加載模塊 ui
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)