小弟我对jQuery的理解一

我对jQuery的理解一

各位应该和我一样,对jQuery这个js轻量级框架有着很深的感触,因为有了它,使我们的工作变得更加轻松,使代码的结构变得更加清晰。但是同样也是有负面的影响,如果使用的多了,自己js的能力可能会下降,这个也是因人而异的。

为了增强自己对jQuery的理解,也为了体会一下大师John Resig的代码风格,今天好好的看了下jQuery的源码。

其实jQuery的总体架构还是挺简单的,最基础的代码如下:

 

 

(function() {
	var myQuery = (function() {
		var myQuery = function(args) {
			alert(args);
		};
		return myQuery;
	})();
	window.myQuery = window.$ = myQuery;
})();
$(88);

 

上面的代码是我根据jQuery的源码自己改写的比较清晰的组织形式。

首先定义了一个命名空间,在命名空间里面声明了一个函数,函数内部返回一个函数指针,其实这个指针才是真正要用到的对象,之后所有的jQuery都是在这个对象上扩展方法。

 

 

window.myQuery = window.$ = myQuery;

上面的方法就是让全局变量中的$指向这个对象指针。

 

与个人博客同步更新

1 楼 hyj1254 2011-03-21  
命名空间通常来讲是个对象,防止不同js互相冲突。你这个叫闭包。
2 楼 gyht0808 2011-03-21  
hyj1254 写道
命名空间通常来讲是个对象,防止不同js互相冲突。你这个叫闭包。

我的命名空间就是指最外面的那个
3 楼 refinement_code 2011-03-21  
写的不错
不过用命名空间这个词,容易让人产生误会
4 楼 gyht0808 2011-03-21  
refinement_code 写道
写的不错
不过用命名空间这个词,容易让人产生误会

其实那个时候我也想不出什么词,然后脑子里好像就只有那个词,希望大虾帮我想个官方点的描述方法,我可以修正
5 楼 ka520888 2011-03-21  
写得太简单了吧.....就这么点东西?
6 楼 int08h 2011-03-21  
就算说命名空间,这里的命名空间也是
window.myQuery = window.$ = myQuery;
这一句
7 楼 xiaoyuqi00 2011-03-24  
没含量。。。
8 楼 bugu1986 2011-03-25  
。其实有jquery的源码分析,以前的je的js高手写的