jQuery 的对象构建.初始化

jQuery 作为当今最优秀的js 类库之一,必须是要花时间好好学习下的,今天正好蛋疼,读了里面一些代码,小结一下:

整个类库定义在一匿名函数中,杜绝了全局变量的产生;

将undefined 作为缺失的参数传递,防止了undefined 变量的污染;

可以看出$(...) 实际上返回的是jQuery.fn.init 对象的实例,随后将该对象的prototype 指向了jQuery.prototype (语句jQuery.fn.init.prototype = jQuery.fn),因此产生的实例共享着jQuery.prototype 里的方法和属性且实现了链式编程的操作;

最后通过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);

分类:默认分类 时间:2012-01-01 人气:3
本文关键词:
分享到:

相关文章

  • 强大的JQuery(三)--操作html与遍历 2012-01-05

    前两篇博客讲到了JQuery的基础知识以及其动画效果,本篇将为大家介绍jquery操纵html以及jquery的遍历。 一、jquery操作html 1.获取内容和属性 text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值 attr()- 方法用于获取属性值。 实例: $("#btn1").click(function(){ alert("Text: " + $("#test").text())

  • JQuery UI Dialog的样式设置问题 2012-01-05

    本篇文章主要是对JQuery中UI Dialog的样式设置问题进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 最近在用一个JQUERY UI Dialog的插件,感觉特别强大,但样式设置比较麻烦,研究了俩天终于搞定了。 运行插件,需要的环境如下 <script src="../../JS/jquery-1.4.2.js" type="text/javascript"></script> <script src="../JS/jquery.ui.j

  • jquery中对于批量deferred的处理方法 2012-01-07

    这篇文章主要介绍了jquery中对于批量deferred的处理方法,有需要的朋友可以参考一下 此代码仿照jquery源码中$.when()的实现 代码如下: function test(i) { var dfd = $.Deferred(); if(i%2 == 0) { console.log("resolve " + i); dfd.resolve(); } else { console.log("failure " + i); dfd.reject(); } return dfd.prom

  • jQuery父级以及同级元素查找的实例 2012-01-12

      父级以及同级元素的查找在使用过程中还是蛮频繁的,下面为大家介绍下jQuery是如何实现的,感兴趣的朋友可以参考下   jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$(“span”).parent()或者$(“span”).parent(“.class”)   jQuery.parents(expr),类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素   jQuery.children(expr).返回所有子节点,这个方

  • 学习JQuery - 14 2012-01-13

    第5章 操纵DOM 1. 操作属性 我们在第四章已经使用jQuery来读取和设置CSS,在本章我们使用jQuery来操作DOM。 本节介绍一个常用的方法:attr() 参数:属性名和属性值 例如,我们把下面的链接上增加提示 js代码 $('div.chapter a').attr('title', 'external'); html文件见附录。 当我们获取属性值的时候,必须是定义的。 js代码 window.alert($('p.square').attr('font')); 如下代码即可正常运

  • jQuery对select操作小结(遍历option,操作option) 2012-01-17

    本篇文章是关于jQuery对select的操作进行了总结介绍,需要的朋友可以参考下 //遍历option和添加、移除optionfunction changeShipMethod(shipping){ var len = $("select[@name=ISHIPTYPE] option").length if(shipping.value != "CA"){ $("select[@name=ISHIPTYPE] option").each(function(){ if($(this).val(

  • jQuery中Dom的基本操作小结 2012-01-20

    本篇文章主要是对jQuery中Dom的基本操作进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jquery中各个节点的基本操作 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht

  • jQuery-DesktopGrid 2012-01-20

    jQueryDesktopGrid jQuery desktop, jQuery desktop grid, jQuery mac os x, jQuery system. to make an beautiful desktop like os system to enhance user experience. clone the project, then just run the index.html, you will see the demo. About author qq 195

  • jQuery MiniUI 快速入门:Hollo, world!(二) 2012-01-21

    我们开始编写第一个MiniUI程序,代码如下: <!DOCTYPE html /> <html> <head> <title> Hello MiniUI!</title> <!--jQuery js--> <script src="../jquery.js" type="text/javascript"></script> <!--MiniUI--> <link href="../t

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.053 (s). 10 q(s)