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 相关文章推荐
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
能说明你的Javascript技术很烂的五个原因分析
Oct 28 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
May 25 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
May 31 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
js实现下一页页码效果
Mar 07 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
vuex与组件联合使用的方法
May 10 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
May 13 Javascript
vue实现从外部修改组件内部的变量的值
Jul 30 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
什么是短波收听SWL
2021/03/01 无线电
PHP explode()函数用法、切分字符串
2012/10/03 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
综合素质自我评价怎么写
2014/09/14 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
邀请书格式范文
2015/02/02 职场文书
自我推荐信格式模板
2015/03/24 职场文书
公司文体活动总结
2015/05/07 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis