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 乱码问题
Aug 06 Javascript
深入理解JavaScript系列(15) 函数(Functions)
Apr 12 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
AngularJS中的模块详解
Jan 29 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
Jan 05 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
vue 设置路由的登录权限的方法
Jul 03 Javascript
js实现图片局部放大效果详解
Mar 18 Javascript
记录vue项目中遇到的一点小问题
May 14 Javascript
加速vue组件渲染之性能优化
Apr 09 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 && 逻辑与运算符使用说明
2010/03/04 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php多线程并发实现方法
2016/09/30 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
在django中,关于session的通用设置方法
2019/08/06 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
HSRP的含义以及如何工作
2014/09/10 面试题
英文简历中的自荐信范文
2013/12/14 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
1亿有多大教学反思
2014/05/01 职场文书
开工仪式策划方案
2014/05/23 职场文书
开工典礼策划方案
2014/05/23 职场文书
社区综治工作汇报
2014/10/27 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
python实现简单石头剪刀布游戏
2021/10/24 Python