1 jQuery庫形式:(function(window,undefined){ })(window);
是一個閉包形式,作用:為了避免和別的框架沖突;
window的作用:(1)把內部的變量傳遞出去給外部使用;(2)壓縮代碼
undefined的作用:(1)傳入undefined進來防止修改;(2)用來壓縮代碼
2.jQuery結構
(function(window,undefined){
//工廠方法,用于創建jQuery實例
var jQuery = function(selector){
return new jQuery.fn.init(selector);
};
//設置原型對象
jQuery.prototype = {
constructor:jQuery,
init:function(selector){
/**
*判斷參數的類型
*/
}
}
})(window);
//設置jQuery的原型對象為fn
jQuery.fn = jQuery.prototype;
//設置init的原型對象為jQuery的原型對象
jQuery.fn.init.prototype = jQuery.fn;
//通過window把jQuery傳遞出去
window.jQuery = window.$ = jQuery;
/**因為jQuery中有很多函數,所以要對其分類,一般使用extend來擴展方法*/
jQuery.extend = jQuery.fn.extend = function(obj){
for(var key in obj){
this[key] = obj[key];
}
}
//可以通過jQuery函數擴展方法(靜態方法),也可以通過jQuery的原型對象擴展方法(動態方法)
/**抽取函數的原則:
* 如果可以抽取成靜態方法,就抽取成靜態方法,靜態方法調用方便而且效率高
*
* 注意:只有當前的方法沒有使用當前對象的一些屬性的時候才可以抽取成靜態方法
*
*/
jQuery.extend({
/**
*判斷參數的類型
*/
})