类似jquery的一个demo
通过以下的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)
具体的用法在注释里有说明。