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 相关文章推荐
JavaScript 基础知识 被自己遗忘的
Oct 15 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
jQuery中通过ajax的get()函数读取页面的方法
Feb 29 Javascript
Jquery实现简单的轮播效果(代码管用)
Mar 14 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
常用的javascript设计模式
Jan 11 Javascript
基于JavaScript实现复选框的全选和取消全选
Feb 09 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
vue实现倒计时获取验证码效果
Apr 17 Javascript
在Vue中使用mockjs代码实例
Nov 25 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
phpmyadmin的#1251问题
2006/11/25 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
JavaScript实现模态对话框实例
2020/01/13 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Python while循环使用else语句代码实例
2020/02/07 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
python中rb含义理解
2020/06/18 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
新加坡第一的杂货零售商:NTUC FairPrice
2020/12/05 全球购物
少先队入队活动方案
2014/02/08 职场文书
2014高考励志标语
2014/06/05 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL