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 相关文章推荐
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
javascript的几种继承方法介绍
Mar 22 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
js基础之DOM中元素对象的属性方法详解
Oct 28 Javascript
Ajax与服务器(JSON)通信实例代码
Nov 05 Javascript
jQuery 获取select选中值及清除选中状态
Dec 13 Javascript
Vue学习之路之登录注册实例代码
Jul 06 Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 Javascript
vue组件横向树实现代码
Aug 02 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
VSCode搭建React Native环境
May 07 Javascript
vue3中provide && inject的使用
Jul 01 Vue.js
避免回车键导致的页面无意义刷新的解决方法
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初学者的8点有效建议
2010/11/20 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python实现LRU算法的2种方法
2015/06/24 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
Python面向对象编程基础解析(一)
2017/10/26 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
python如何让类支持比较运算
2018/03/20 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
机械专业毕业生推荐信范文
2013/11/25 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
2015年推普周活动方案
2015/05/06 职场文书
步步惊心观后感
2015/06/12 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL