JQuery 源码初看 作者:mifly
JQuery工作原理解析以及源代码示例 作者:cloudandy的专栏
窥探JQuery——面向JavaScript程序员 原作者: simon willison 原文 译者: davidkore…
。。。 还有很多 慢慢补充
jQuery 的代码非常的美观整洁 很方便我们学习研究
我用刚学的python 写了一个小脚本,在jQuery 源码前面+了行号 方便读写
1#addLineNumber.py
2'''add LineNumber to some file'''
3
4
5addNum = 1
6all = []
7
8fname = raw_input('Enter file name: ')
9print
10
11try:
12 fobj = open(fname, 'r')
13except IOError, e:
14 print"*** file open error:", e
15else:
16
17 for eachLine in fobj:
18 all.append(("[%-4d]" % addNum)+' '+eachLine);
19 addNum+=1
20 fobj.close()
21
22fobj = open('result.js', 'w')
23fobj.writelines(['%s' % x for x in all])
24fobj.close()
25print 'DONE!'
26raw_input()
27 1(function(){
2/*d
3 * jQuery 1.2.6 – New Wave JavaScript
4 *
5 * Copyright (c) 2008 John Resig (jquery.com)
6 * Dual licensed under the MIT (MIT-LICENSE.txt)
7 * and GPL (GPL-LICENSE.txt) licenses.
8 *
9 * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
10 * $Rev: 5685 $
11 */
12
13// Map over jQuery in case of overwrite
14var _jQuery = window.jQuery,
15// Map over the $ in case of overwrited
16 _$ = window.$;
17
18var jQuery = window.jQuery = window.$ = function( selector, context ) {
19 // The jQuery object is actually just the init constructor 'enhanced'
20 return new jQuery.fn.init( selector, context );
21};
22
23// A simple way to check for HTML strings or ID strings
24// (both of which we optimize for)
25var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
26
27// Is it a simple selector
28 isSimple = /^.[^:#\[\.]*$/,
29
30// Will speed up references to undefined, and allows munging its name.
31 undefined;
32
[1 ] (function(){
(function(){})();
第一个括号里面是个匿名函数,第二个括号表示马上执行第一个括号里面的代码。所有javascript代码都在一个匿名函数里,确保了所定义的函数、对象的有效范围,起到了命名空间的作用。
[3 ] * jQuery 1.2.6 – New Wave Javascript
版本信息 jquery 1.2.6 伟大的代码 伟大的版本
[14 ] var _jQuery = window.jQuery,
保存window对象本身的jQuery对象(如果存在),避免与 jQuery 库的冲突
[16 ] _$ = window.$;
同上
[18 ] var jQuery = window.jQuery = window.$ = function( selector, context ) {
…
[21 ] };
返回jQuery对象,jQuery同时也是window对象的一个属性,这样就可以在其他地方像使用document(document也是window的一个属性)一样使用jQuery了。$是jQuery的同名对象
[25 ] var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
/『^』开始『[^<]*』大于等于0个不是符号"<"的任意字符『(<(.|\s)+>)』符号"<"+大于等于1个任 意字符或者空白+符号">"『[^>]*$|^#(\w+)$』以大于等于0个非符号">"结束或者以开头是符号"#"和大于等于1个 的数字字母结束/
[28 ] isSimple = /^.[^:#\[\.]*$/,
『^.』任意字符开头(除换行符)『[^:#\[\.]*』大于等于0个非符号":"、"#"、"|"、"."的字符结束