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 相关文章推荐
jQuery学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
jquery动态添加元素事件失效问题解决方法
May 23 Javascript
node.js中的require使用详解
Dec 15 Javascript
JavaScript中的继承方式详解
Feb 11 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
Aug 10 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
vue.js+Element实现表格里的增删改查
Jan 18 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
vuex 中插件的编写案例解析
Jun 10 Javascript
深入解析微信小程序开发中遇到的几个小问题
Jul 11 Javascript
uniapp微信小程序:key失效的解决方法
Jan 20 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
PHP的FTP学习(一)
2006/10/09 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
为jquery的ajaxfileupload增加附加参数的方法
2014/03/04 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
python列表与元组详解实例
2013/11/01 Python
Python之PyUnit单元测试实例
2014/10/11 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
python解决字符串倒序输出的问题
2018/06/25 Python
python实现简单登陆系统
2018/10/18 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
乡镇办公室工作决心书
2014/03/11 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
小学教师教育随笔
2015/08/14 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
JAVA springCloud项目搭建流程
2022/05/11 Java/Android