javascript笔记:临摹jQuery(一)

多年的软件开发经验让我知道,做技术不管怎么看都不如做一下,就算是读源码,也不应该只是读,更多还是动手练习,做的时候身临其境体会大师们设计的巧妙。
临摹就是一个很不错的练习方式,大学读书时候我的专业是工业设计,大一大二有很多素描色彩课,那时候老师总是布置临摹的作业,当时自己悟性太低,把临摹当做抄袭,很少动脑筋去思考临摹到底是咋回事,现在做软件了,想临摹jQuery的框架时候才发现,这是件非常困难的事情,真正的临摹是要领悟作者的思路,只有理解了作者为什么这么做,才知道如何去临摹作者的作品。
好了不说这些华而不实的大话了。上篇博文里我通过学习javascript正则表达式,读了下jQuery里面选择造器的代码,通过传入到jQuery里面参数的不同,分析了下jQuery选择器整个代码的运行,但是如果只是做到这些,上篇文章的大众意义就比较差了,很难让人理解jQuery到底为什么会设计选择器,选择器在jQuery里的地位等等。所以前一篇对jQuery源码的分析有点断章取义,所以我今天查阅了一些资料,也静下心来好好琢磨了下jQuery的框架,根据以前调试程序的经验,我想深入理解jQuery,第一步就是要明白jQuery对象是如何构造的。
我研究的主要是jquery-1.4.1.js,这是我使用最多的一个版本,而且我经常使用的帮助文档也是这个版本的,另外一个是jquery-1.6.1.js,这个做为1.4.1的配合版本,通过比较二者差异来体会作者在改进jquery的着力点在哪里,其次我手头的资料都是用jquery-1.2.x.js作为分析对象。我临摹时候讲jQuery的名称改为了xQuery,意思是扩展的jQuery,也标示它和原始的jQuery的某些不同(不同是指有时候我会根据代码的特点,讲1.4.1和1.61的代码进行混搭)。代码如下:
(注意:我写的代码要在装有firebug的firefox里面运行)
xQuery study

结果如下:
javascript笔记:临摹jQuery(一)
另外我用jQuery实现同样的功能,代码如下:
jQuery Test

结果如下:
javascript笔记:临摹jQuery(一)
呵呵,能打印出具体值的结果是差不多的。
我临摹的框架还不完善,但我自己觉得大致有jQuery的雏形了,现在满足的功能也比较有限,只有jQuery里面参数为jQuery(''),jQuery(null),jQuery(undefined),jQuery('#txt01'),jQuery(document.getElementById('txt01'))这些功能还是按照jQuery代码实现了,其他的参数因为这些代码还没有阅读,先不给出来,另外xQuery对象的也构建的不全,这些以后也会补充进去。
不过上面的代码用javascript基础知识来分析,就能研究出很多有趣的特性,下面的几篇博文会围绕我这个不完善的代码进行详尽分析。分析完后,我接下逐步完善xQuery,让他和jQuery长得一模一样。
Tags: 

延伸阅读

最新评论

发表评论