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 相关文章推荐
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
JS实现div内部的文字或图片自动循环滚动代码
Apr 19 Javascript
JavaScript实现的背景自动变色代码
Oct 17 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
jQuery.datatables.js插件用法及api实例详解
Oct 28 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
vue实现表格数据的增删改查
Jul 10 Javascript
JavaScript创建对象的七种方式全面总结
Aug 21 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
vue init webpack 建vue项目报错的解决方法
Sep 29 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
2009/06/29 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
JS 建立对象的方法
2007/04/21 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
wxPython中文教程入门实例
2014/06/09 Python
Python运算符重载用法实例分析
2015/06/01 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
解决python 上传图片限制格式问题
2019/10/30 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
会计电算化专业自荐信
2014/03/15 职场文书
课程改革实施方案
2014/03/16 职场文书
城管综合整治方案
2014/05/01 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书