jQuery基础框架浅入剖析

一、原型模式结构


代码如下:

// 定义一个jQuery构造函数
var jQuery = function() {
};
// 扩展jQuery原型
jQuery.prototype = {
};

上面是一个原型模式结构,一个jQuery构造函数和jQuery实例化对象的的原型对象,我们一般是这样使用的:


代码如下:

var jq = new jQuery(); //变量jq通过new关键字实例化jQuery构造函数后就可以使用原型对象中的方法,但是jQuery并不是这么使用的

二、返回选择器实例


代码如下:

var jQuery = function() {
// 返回选择器实例
return new jQuery.prototype.init();
};
jQuery.prototype = {
// 选择器构造函数
init: function() {
}
};

虽然jQuery不是通过new关键字实例化对象,但是执行jQuery函数仍然得到的是一个通过new关键字实例化init选择器的对象,如:
var navCollections = jQuery('.nav'); //变量navCollections保存的是class名为nav的DOM对象集合.
三、访问原型方法


代码如下:

var jQuery = function() {
// 返回选择器实例
return new jQuery.prototype.init();
};
jQuery.prototype = {
// 选择器构造函数
init: function() {
},
// 原型方法
toArray: function() {
},
get: function() {
}
};
// 共享原型
jQuery.prototype.init.prototype = jQuery.prototype;

我们一般习惯称jQuery函数中返回的选择器实例对象为jQuery对象,如我们可以这样使用:


代码如下:

jQuery.('.nav').toArray(); // 将结果集转换为数组

为什么可以使用toArray方法呢? 即如何让jQuery对象访问jQuery.prototype对象中的方法?只需将实例化选择器对象的原型对象共享jQuery.prototype对象,上面体现代码为:


代码如下:

jQuery.prototype.init.prototype = jQuery.prototype; // 共享原型

四、自执行匿名函数


代码如下:

(function(window, undefined) {
var jQuery = function() {
// 返回选择器实例
return new jQuery.prototype.init();
};
jQuery.prototype = {
// 选择器构造函数
init: function() {
},
//原型方法
toArray: function() {
},
get: function() {
}
};
jQuery.prototype.init.prototype = jQuery.prototype;
// 局部变量和函数在匿名函数执行完后撤销
var a, b, c;
function fn() {
}
// 使jQuery成为全局变量
window.jQuery = window.$ = jQuery;
})(window);

自执行匿名函数中声明的局部变量和函数在匿名函数执行完毕后撤销,释放内存,对外只保留jQuery全局变量接口。

来源: http://www.cnblogs.com/yangjunhua/archive/2012/12/27/2835989.html

(0)

相关推荐

  • jquery 注意事项与常用语法小结

    1.关于选择器中含有特殊符号 选择器中含有".","#","(","]"等特殊字符,根据W3C的规定,属性值中是不能含有这些特殊字符的,例如: 复制代码 代码如下: <div id="id#b">bb</div> <div id="id[1]"></div> 如果按照普通的方式来获取,例如: 复制代码 代码如下: $("#id#b

  • jQuery插件开发基础简单介绍

    1.开发jQuery 插件的基本格式 复制代码 代码如下: (function ($) { $.extend($.fn, { }) })(jQuery) 2.开发全局函数的基本格式 复制代码 代码如下: (function ($) { $.extend($, { }) })(jQuery) 开发示例: 复制代码 代码如下: (function ($) { $.extend($, { subtract: function (a, b) { return a-b; } , add: function

  • jQuery基础知识小结

    1.基础 jquery对象集:   $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] 使用jquery的get方法获取jquery对象集中的javascript元素:var temp = $('img[alt]').get(0) 使用jquery的eq方法获取jquery对象集中的jquery对象元素:     $('img[alt]').eq(0)     $('img[alt

  • jQuery实用基础超详细介绍

    一.jQuery 简介 jQuery 是继 Prototype 之后又一个优秀的 JavaScript 库jQuery 理念: 写得少, 做得多. 优势如下:轻量级强大的选择器出色的 DOM 操作的封装可靠的事件处理机制完善的 Ajax出色的浏览器兼容性链式操作方式-- 第一个案例 二.jQuery 对象 jQuery 对象就是通过 jQuery ($()) 包装 DOM 对象后产生的对象jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQu

  • jQuery中的正则表达式分析 正则基础

    quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/ (?:-)表示是一个非捕获型 [^<]表示是以"<"起始,包含0个或多个'<'括号 (<[\w\W]+>)表示是一个捕获型,以'<>'起始,中间包含一个或多个字符 $表示字符的结尾 (#([\w\-]+))表示是一个捕获型,以'#'号和字符串.数字._以及-组成 rnotwhite = /\S/ \S表示是空白字符

  • jquery连缀语法如何实现

    我想熟悉javascript的没有不知道jquery的吧,作为首屈一指的javascript框架,他的许多特性都让人兴奋不已,其中不得不提的就是特有的连缀书写语法了,那他到底只怎么实现的呢,我们也来实现一个吧. 复制代码 代码如下: sx.$=function(id){ var t=(typeof(id)=="string"?document.getElementById(id):id); t.text=function(){ return this.innerText?this.in

  • jQuery语法总结和注意事项小结

    一.简介 1.1.概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.mootools.Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度. jQuery是继prototype之后的又一个优秀的Javascript框架.它是由 John Resig 于 2006 年初

  • jquery()函数的三种语法介绍

    接受一个字符串,其中包含了用于匹配元素集合的 CSS 选择器: 复制代码 代码如下: jQuery(selector,[context]) 使用原始 HTML 的字符串来创建 DOM 元素: 复制代码 代码如下: jQuery(html,[ownerDocument]) 绑定一个在 DOM 文档载入完成后执行的函数: 复制代码 代码如下: jQuery(callback )

  • jQuery学习基础知识小结

    jQuery学习笔记: jQuery学习 1.基本语法: $(selector).action() $:定义jQuery selector:选择符,查询和查找HTML元素 action():对元素执行的操作 实例: $(this).hide()------隐藏当前元素 $("p"),hide()-------隐藏所有的p元素 $("#ID").hide()-----隐藏id=ID的元素 $("p.Class")--------隐藏class=Cl

  • jquery基础教程之数组使用详解

    1. $.each(array, [callback]) 遍历[常用] 解释: 不同于例遍jQuery对象的$().each()方法,此方法可用于例遍任何对象.回调函数拥有两个参数:第一个为对象的成员或数组的索引, 第二个为对应变量或内容. 如果需要退出each循环可使回调函数返回false, 其它返回值将被忽略. each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但比for循环强大.在数组中,它可以轻松的攻取数组索引及对应的值.例: 复制代码 代码如下: var _mozi=

  • jQuery基础语法实例入门

    本文实例讲述了jQuery基础语法.分享给大家供大家参考.具体分析如下: 此语法规则有两个部分组成:获取jQuery对象和对jQuery对象执行的操作. 复制代码 代码如下: $(selector).action() 下面就对以上语法规则进行详细的阐述: 1.$定义jQuery,将被选的DOM对象转换成jQuery对象. 2.selector是选择器,类似于CSS选择器. 3.action()是要对jQuery对象行的操作. 注: $是jQuery的简写.例如: 复制代码 代码如下: $("di

随机推荐