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({
/**
*判断参数的类型
*/
})