jQuery来源学习笔记:整体结构
1.1、由于调用一个匿名函数:
(function( window, undefined ) { // jquery code })(window);
这是一个自调用匿名函数,第一个括号内是一个匿名函数,第二个括号马上运行,传參是window。
1、为什么有自调用匿名函数?
通过定义匿名函数,创建了一个“私有”空间,jQuery必须保证创建的变量不能和导入它的程序发生冲突。
2、为什么传入window?
传入window使得window由全局变量变成局部变量,jQuery訪问window时,不须要返回到顶层作用域,可更快訪问window。更重要的是,能够在压缩代码时进行优化。
3、为什么有undefined?
在自调用匿名函数作用域内,确保undefined是真的没有定义。由于undefined可以被重写。
1.2、整体架构:
(function( window, undefined ) { // 构造jQuery对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // 工具函数 Utilities // 异步队列 Deferred // 浏览器測试 Support // 数据缓存 Data // 队列 queue // 属性操作 Attribute // 事件处理 Event // 选择器 Sizzle // DOM遍历 // DOM操作 // CSS操作 // 异步请求 Ajax // 动画 FX // 坐标和大小 window.jQuery = window.$ = jQuery; })(window);
版权声明:本文博主原创文章,博客,未经同意不得转载。