论坛首页 Web前端技术论坛

我对jQuery的理解一

浏览 6771 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-18   最后修改:2011-03-18

各位应该和我一样,对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;

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

 

个人博客同步更新

   发表时间:2011-03-21  
命名空间通常来讲是个对象,防止不同js互相冲突。你这个叫闭包。
0 请登录后投票
   发表时间:2011-03-21  
hyj1254 写道
命名空间通常来讲是个对象,防止不同js互相冲突。你这个叫闭包。

我的命名空间就是指最外面的那个
0 请登录后投票
   发表时间:2011-03-21  
写的不错
不过用命名空间这个词,容易让人产生误会
0 请登录后投票
   发表时间:2011-03-21  
refinement_code 写道
写的不错
不过用命名空间这个词,容易让人产生误会

其实那个时候我也想不出什么词,然后脑子里好像就只有那个词,希望大虾帮我想个官方点的描述方法,我可以修正
0 请登录后投票
   发表时间:2011-03-21  
写得太简单了吧.....就这么点东西?
0 请登录后投票
   发表时间:2011-03-21  
就算说命名空间,这里的命名空间也是
window.myQuery = window.$ = myQuery;
这一句
0 请登录后投票
   发表时间:2011-03-24  
没含量。。。
0 请登录后投票
   发表时间:2011-03-25  
。其实有jquery的源码分析,以前的je的js高手写的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics