通过以下的demo,可以大体知道jquery的一些组织结构以及一些实现方法。
实际上jquery就是一个全局变量,只是在这个变量上添加了各种属性和方法。
首先我们要理解什么是匿名函数自执行,简单点就是如下结构的写法就是一个匿名函数自执行,
(function(thePara){
...
})(window)
可以分为两个大的部分,第一部分(function(thePara){}),这一部分是固定写法,即用一对括号把一个匿名函数包裹起来,
而且这个匿名函数的形参thePara用来接收传入的变量A;第二部分就是(window),作用是给前面被括号包裹起来的匿名函数的形参传值,
也就是说形参thePara接收的变量A就是window,而这个window就是DOM中的一个顶级的对象,所以在匿名函数里我们要访问window
或者在window对象上添加属性或者function的时候就可以用thePara来代替。
具体如下:
//w作为window的形参,就表示window
(function(w) {
// 定义一个全局的window.wyl变量,就类似于jquery里的$,Jquery对象
w.wyl;
wyl = function(obj) {
this._obj = obj;
// 作用:返回当前对象,即返回window.wyl这个对象
return this;
}
// wyl.prototype.isArr的作用:在所有的wyl对象上加上isArr(para)的function,
wyl.prototype.isArr = wyl.isArr = function(para) {
/**
* 在wyl对象上添加工具方法isArr(obj) 实例:var flag = wyl.isArr(obj); 如果为true那么就说明是数组
*/
if (typeof para == 'object' && para instanceof Array) {
return true;
} else {
return false;
}
}
// 传入window对象
})(window)
具体的用法在注释里有说明。