1.1 jQuery--总体框架
来源:互联网 发布:java开发经验 编辑:程序博客网 时间:2024/06/05 10:41
1.11自调用匿名函数 self-invoking anonymous function
( function(widow,undefined){ //code ....})(window)
- 这是一个自调用匿名函数。那到底是什么呢?在第一括号内,创建一个匿名函数;第二个括号,表示立即执行。 → what
- 那么为什么要创建一个“自调用匿名函数”呢?
4. 为什么要传入window呢?
通过传入window变量,使得window由全局变量变为局部变量,当在jQuery代码块中访问window时,不需要将作用域链回退到顶层作用域,这样可以更快的访问window;这还不是关键所在,更重要的是,将window作为参数传入,可以在压缩代码时进行优化,看看jquery-1.6.1.min.js:
(function(a,b){})(window); // window 被优化为 a
5. 为什么要在在参数列表中增加undefined呢?
在 自调用匿名函数 的作用域内,确保undefined是真的未定义。因为undefined能够被重写,赋予新的值。
undefined = "now it's defined";
alert( undefined );
浏览器测试结果:
浏览器
测试结果
结论
ie
now it's defined
可以改变
firefox
undefined
不能改变
chrome
now it's defined
可以改变
opera
now it's defined
可以改变
6. 注意到源码最后的分号了吗?
分号是可选的,但省略分号并不是一个好的编程习惯;为了更好的兼容性和健壮性,请在每行代码后加上分号并养成习惯。
1.12 总体架构
接下来看看在 自调用匿名函数 中都实现了什么功能,按照代码顺序排列:
(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);
通过jQuery(xxx)的调用实现没有生成对象,它的this是指向window对象的,那么jQuery的那些实例方法是怎么样继承过来的呢?接下来看一下:
var jQuery = window.jQuery= function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
}
这是jQuery的总入口,jQuery对象不是通过new jQuery来继承prototype中的方法,而是jQuery.fn.init函数生成的对象。1.2 jQuery ---- 正则表达式
- 1.1 jQuery--总体框架
- JQuery框架总体架构(转nuysoft)
- ZigBee TI ZStack CC2530 1.1 总体框架
- jquery总体架构
- Jquery总体架构
- JVM之一-总体框架
- Android源码总体框架
- COTEX-M3 总体框架
- Latex的总体框架
- 游戏总体框架设计
- Java 集合总体框架
- Java集合总体框架
- java基础总体框架
- ssm框架总体整合
- JQuery3.1.1源码解读(一)【jQuery总体架构】
- 如何提高码农产量--mvc+jquery框架形成之旅(总体介绍)
- jQuery总体架构的理解
- jquery源码的总体架构
- C++中extern “C”含义深层探索
- C#中加强ListView控件的功能
- ios中验证IP地址有效的两种方法
- 脱机工作的对话框 和 拨号连接的对话框 关闭
- 异步请求和同步请求
- 1.1 jQuery--总体框架
- 后台管理系统模板收藏!
- IOS研究院之滚动视图UIScrollView的简单应用
- Service 'VisualSVN Server' failed to start.解决办法
- 什么是BGP线路,如何分辨BGP线路真伪
- jdbc开发(1)
- 【交互探讨:以用户场景和产品需求导向的设计】
- 数据库中表内容的删除总结(总有你需要的)
- 希尔排序