jquery的框架,我想对于大部分使用过js的人来说,都再熟悉不过了。但是却很少有人认真的去学习研究过jquery的源码。下面我就将我前些天研究的这方面的成果与大家分享一下。
这里我采用从整体到细节的讲解方式。
先看jquery的整体框架:
源代码:
(function (){
//jquery的代码
})();
第一个括号里面是个匿名函数,第二个括号表示马上执行第一个括号里面的代码。
注意:第一个括号后紧跟第二个括号,才可以执行第一个括号内的匿名函数的代码。换句话说,这两个括号是一个整体,要么全要,要么全不要;假如去掉第一个括号,大家可以手动去试一下,会发现不仅不会执行匿名函数,而且还会报js的错误。
第一个括号内的匿名函数是在加载页面的时候开始执行的。
jquery这么一套成熟的js框架,必定会考虑到命名冲突问题,那么jquery是通过什么方式去避免命名的冲突的呢?
在js中,没有命名空间的概念;但是我们可以采用另外一种变通的方式去达到我们的目的------避免命名冲突。就是这里采用的方式了,所有的javascript函数、对象都在代码里面写的匿名函数里面定义,确保了所定义的函数、对象的作用域仅限于该匿名函数内,起到了命名空间的作用。
知识点:采用var 变量名方式定义的js变量是局部变量,没有var的变量是全局的变量,他是作为window的属性出现的。在js里面是很忌讳使用全局变量的,所以大家都尽量的采用var 变量名的方式去定义变量。
既然jquery的变量的作用域是在这个匿名函数里面,那么我们又是如何在这个匿名函数的外面使用到的呢?在jquery中有这么一句话,不知道大家注意到没有:
var jQuery = window.jQuery = function(selector, context)
{//……
};
这里让jquery框架的最重要对象jQuery作为window的一个属性出现,这样就可以在其他地方随意的使用了。
我使用的都是$并不是jQuery啊。其实在jquery里面定义了$=jQuery,也即他们是同名对象。
就想document一样,随意使用。
(function (){
var window = this;
})();
这样就拿到了Window对象,在这个匿名函数里面可以随意使用window,而且该变量等价于js中的WINDOW对象。
分享到:
相关推荐
《jQuery源码框架解读》 在前端开发领域,jQuery是一个不可或缺的库,它极大地简化了JavaScript操作DOM、处理事件、创建动画以及实现Ajax交互。这份资料深入解析了jQuery的源码,旨在帮助开发者理解其内部机制,...
NULL 博文链接:https://269629151.iteye.com/blog/1699635
文档中的第71行至73行提到,在当前作用域内(即这个自运行的匿名函数所形成的闭包内)、全局作用域内的`jQuery`和`$`都是指向下面这个函数的引用,而这个函数实际上调用了`jQuery.fn.init`来构造一个jQuery对象。...
jQuery是一个快速、简洁的JavaScript框架,jQuery设计倡导写更少的代码,做更多的事情。也就是说jQuery的使命就是帮住开发工程师们更加高效率的完成开发工作。jQuery从入门到放弃课程,通过近百集课程,带领同学们...
**jQuery企业框架详解** jQuery作为一个高效、简洁的JavaScript库,被广泛应用于Web开发,尤其在企业级项目中,它的易用性和丰富的插件生态使其成为首选。本篇将深入探讨jQuery在ASP.NET和Java企业开发中的应用,...
JQuery Mobile 是一个基于 jQuery 库的移动 Web 应用程序开发框架,它提供了一套丰富的插件和 widgets,帮助开发者快速构建移动 Web 应用程序。下面是 JQuery Mobile 技术文档的详细知识点解读: 移动 WEB 技术 ...
- **HTML结构**:通常,这个示例会包含一个隐藏的HTML元素,如`<div>`,作为对话框的基础框架。当触发确认操作时,这个元素会被显示出来。 - **CSS样式**:为了实现自定义的外观,开发者可能会创建一组CSS样式,...
在详细解读addCombinator函数之前,我们先了解下jQuery选择器和Sizzle引擎的基本概念。jQuery选择器允许开发者通过特定的语法选取页面中的DOM元素集合。Sizzle是jQuery所使用的底层选择器引擎,它是用来解析和执行...
#### 一、总述:jQuery框架概览 jQuery框架自推出以来,以其简洁、高效、功能强大的特性迅速成为前端开发人员的首选库之一。其1.7.1版本更是集成了丰富的API,为网页动态效果、DOM操作、事件处理等提供了强大的支持...
- **jQuery Mobile**:这是一本介绍如何利用jQuery Mobile框架进行移动应用开发的专业书籍。 - **Jon Reid**:本书作者,拥有丰富的前端开发经验,特别是对于jQuery及其相关技术有深入研究。 #### 描述解读:...
jQuery UI 1.7是该框架的一个重要版本,包含了丰富的功能和改进。以下是对这一版本的详细解读。 ### 1. **组件概述** - **Dialog(对话框)**: 提供模态或非模态对话框,可以设置标题、大小、位置以及关闭按钮。 - ...
jQuery框架的核心是`$`符号,这是一个全局函数,用于构造jQuery对象。jQuery对象实质上是对原生DOM对象的一种封装,它提供了一套统一的接口来操作DOM元素,使得跨浏览器编程变得更加简单。 #### 构造对象 - 通过...
在IT领域,jQuery UI是一个强大的JavaScript库,它扩展了基础的jQuery库,提供了丰富的用户界面组件。这个"完整jQuery UI后台系统原型Java工程"是一个基于jQuery UI的解决方案,专为构建复杂的后台管理系统而设计。...
- **Learning jQuery**:本书旨在帮助读者深入理解并掌握jQuery这一流行的JavaScript库。通过系统的学习,读者能够运用jQuery来提升网页的交互性和设计效果。 #### 描述解析: - **jQuery学习的好帮手**:本书作为...
至于“Hibernate分页查询原理解读”,这可能是一个深入解析Hibernate分页机制的文档,包括`FirstResult`和`MaxResults`参数的使用,以及如何有效地缓存查询结果以提高性能。 综合来看,这个压缩包包含了一系列关于...
TransformerJS是基于JavaScript库jQuery构建的,jQuery是一个广泛使用的JavaScript框架,它简化了DOM操作、事件处理和Ajax交互,使得创建动态网页变得更加容易。TransformerJS利用jQuery的强大功能,提供了幻灯片...
本文将对一份包含详细中文注释的jQuery源码进行解读,帮助读者更好地理解其内部实现机制。 #### 二、源码注释的重要性 对于开发者而言,阅读和理解高质量的源码是非常重要的。一方面,这有助于我们深入学习相关技术...
jQuery UI是基于jQuery库的交互式用户界面组件框架,提供了丰富的界面元素和交互效果。在1.10版本中,API(应用程序接口)进一步完善,为开发者带来了更强大的功能和更易用的工具。本文将对jQuery UI 1.10 API进行...
该示例主要围绕三个关键部分展开:HTML结构、JavaScript代码(使用JQuery框架)以及一个PHP文件用于接收并响应Ajax请求。接下来将详细解析这些部分的功能与实现方式。 ### HTML结构分析 页面布局包括一个用于显示...