类似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)

  具体的用法在注释里有说明。

原文地址:https://www.cnblogs.com/Sunnor/p/5759728.html