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 相关文章推荐
网站404页面3秒后跳到首页的实例代码
Aug 16 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
Dec 29 Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
JavaScript 巧学巧用
May 23 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
使用JS组件实现带ToolTip验证框的实例代码
Aug 23 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 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&mysql 日期操作小记
2012/02/27 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JS中定位 position 的使用实例代码
2017/08/06 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
鱼油专家:Omegavia
2016/10/10 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
会计专业导师推荐信
2014/03/08 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
合作意向书范本
2019/04/17 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android