jQuery的初始化与对象构建之浅析


Posted in Javascript onApril 12, 2011

小结一下:

1.整个类库定义在一匿名函数中,杜绝了全局变量的产生;
2.将undefined 作为缺失的参数传递,防止了undefined 变量的污染;
3.可以看出$(...) 实际上返回的是jQuery.fn.init 对象的实例,随后将该对象的prototype 指向了jQuery.prototype (语句jQuery.fn.init.prototype = jQuery.fn),因此产生的实例共享着jQuery.prototype 里的方法和属性且实现了链式编程的操作;
4.最后通过window.jQuery = window.$ = jQuery 将jQuery 与$ 导出为全局变量。

(function(window, undefined) { 
// Define a local copy of jQuery 
var jQuery = (function() { 
var jQuery = function(selector, context) { 
// The jQuery object is actually just the init constructor 'enhanced' 
return new jQuery.fn.init(selector, context/*, rootjQuery*/); 
}; 
// ... 
jQuery.fn = jQuery.prototype = { 
constructor : jQuery, 
init : function(selector, context, rootjQuery) { 
// ... 
} 
// ... 
}; 
// Give the init function the jQuery prototype for later instantiation 
jQuery.fn.init.prototype = jQuery.fn; 
// ... 
// Expose jQuery to the global object 
return jQuery; 
})(); 
// ... 
window.jQuery = window.$ = jQuery; 
})(window);
Javascript 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
javascript引用对象的方法代码
Aug 13 Javascript
通过修改referer下载文件的方法
May 11 Javascript
javascript类继承机制的原理分析
Sep 12 Javascript
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
javascript中几个容易混淆的概念总结
Apr 14 Javascript
纯js实现仿QQ邮箱弹出确认框
Apr 29 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
Nov 23 Javascript
js面试题之异步问题的深入理解
Sep 20 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 Javascript
避免回车键导致的页面无意义刷新的解决方法
Apr 12 #Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 #Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 #Javascript
window.dialogArguments 使用说明
Apr 11 #Javascript
30个最佳jQuery Lightbox效果插件分享
Apr 11 #Javascript
基于jquery的仿百度搜索框效果代码
Apr 11 #Javascript
基于jquery的监控数据是否发生改变
Apr 11 #Javascript
You might like
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Django中使用Celery的教程详解
2018/08/24 Python
django中forms组件的使用与注意
2019/07/08 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python tkinter和exe打包的方法
2020/02/05 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
高中生学习的自我评价
2013/12/14 职场文书
业务部经理岗位职责
2014/01/04 职场文书
《中华少年》教学反思
2014/02/15 职场文书
应届生自荐书
2014/06/23 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
党章学习心得体会2016
2016/01/14 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
python urllib库的使用详解
2021/04/13 Python
Log4j.properties配置及其使用
2021/08/02 Java/Android