【jQuery源码分析:源码结构与核心函数】教程文章相关的互联网学习教程文章

jQuery.each使用和源码分析【代码】

jQuery.each方法是jQuery的核心工具方法之一,通用例遍方法,可用于例遍对象和数组。不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。通常需要两个参数object:需要例遍的对象或数组。callback:每个成员/元素执行的回调函数。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。例遍数组,同时使用元素索引...

jQuery源码分析--event事件绑定(上)【代码】

上文提到,jquery的事件绑定有bind(),delegate()和one()以及live()方式。我用的jQuery2.1.3版本,live()已经被废弃了。bind(),delegate()和one()的内部源码。//7491行 bind: function( types, data, fn ) {returnthis.on( types, null, data, fn );}, //7498行 delegate: function( selector, types, data, fn ) {returnthis.on( types, selector, data, fn );}, //7474行 jQuery.each( ("blur focus focusin focusout load res...

三元表达式之理解/jquery源码分析之$.inArray实现【图】

每次看到三元表达式就会惶惶然分不清如何读,正如语文中的断句一样,jquery源码中的三元表达式更是不知如何断句。附jquery中的inArray实现。大家熟悉jquery的应该都不陌生inArray的用法。在源码实现中,先判断了arr是否存在,如果不存在,则可直接返回-1,否则进行后续判断,当存在indexOf方法时,则直接使用call来调用indexOf方法。否则继续。在jquery代码中处处体现代码构建者对于javascript的深刻理解,譬如这里对arr.length的缓...

jquery源码分析(1)LIFE函数【代码】

这次学习 jQuery 源码,基于当前最新的版本,3.3.1,源码地址:jquery 先说一下LIFE函数;LIFE函数其实方法挺多的,CODE如下(function(){...})()!function foo(){...}(); +function foo(){...}(); void function() {...}();var a = function(){...}();但是在jquery中的立即执行或许比较迷惑(反正我是迷惑了)( function( global, factory ) {"use strict";if ( typeof module === "object" && typeof module.exports === "objec...

jQuery1.11源码分析(6)-----jQuery结构总揽【代码】

(在看以下内容之前请先对原型链有一定的了解,比如:prototype是对象还是函数?)在看jQuery的其他源码之前,必须对jQuery的数据结构有一定的了解。jQuery的核心很简单,jQuery工厂函数和jQuery对象,其他的都是各个功能模块工具函数。jQuery工厂函数主要有两个作用,生成jQuery对象和充当其他工具函数的命名空间(总不能把那些函数命名成全局函数来污染了全局变量吧)。但jQuery工厂函数不是简简单单地直接new jQuery()来生成jQuery对...

jQuery 源码分析和使用心得 - 关于源码【代码】

说到jQuery, 大家可能直觉的认为jQuery的源码应该就是一个jquery.xx.js这样的一个文件. 但是看到真正的源码的时候, 整个人都思密达了.jQuery的源码做的事远比你想象的多, 为了保证代码的可维护性, 健壮性, 通用性等等, jQuery将各个功能模块独立成单个的js文件, 并通过依赖管理管理模块之间的依赖关系, 在构建的时候通过这种依赖关系将各个模块合并成一个js文件, 最后经过压缩混淆等步骤才会产生我们经常用的jquery.xx.min.js文件(...

jQuery-1.9.1源码分析系列完毕目录整理

jQuery 1.9.1源码分析已经完毕。目录如下jQuery-1.9.1源码分析系列(一)整体架构jQuery-1.9.1源码分析系列(一)整体架构续jQuery-1.9.1源码分析系列(二)jQuery选择器jQuery-1.9.1源码分析系列(二)jQuery选择器续1jQuery-1.9.1源码分析系列(二)jQuery选择器续2——筛选jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——词法解析jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——编译原理jQuery-1.9.1源码分析系列(...

jQuery源码分析:源码结构与核心函数

jQuery源码分析-03构造jQuery对象-源码结构和核心函数jQuery.fn和jQuery.prototype区别 原文:http://www.cnblogs.com/littlewriter/p/6391445.html

jQuery-1.9.1源码分析系列(六) 延时对象续——辅助函数jQuery.when【代码】

$.when的说明描述: 提供一种方法来执行一个或多个对象的回调函数,返回这些对象的延时(Deferred)对象。  说明(结合实例和源码):  如果你不传递任何参数, jQuery.when()将返回一个resolved(解决)状态的promise对象。  如果向jQuery.when()传入一个参数 , 并且它不是一个Deferred或Promise对象, 那么它会被当作是一个被解决(resolved)的延迟对象,并且绑定到上面的任何 doneCallbacks 都会被立刻执行。向 doneCal...

jQuery-1.9.1源码分析系列(五) 回调对象【代码】【图】

jQuery.Callbacks()提供的回调函数队列管理本来是延时回调处理的一部分,但是后面将其独立出来作为一个模块。jQuery就是这样,各个模块间的代码耦合度是处理的比较好的,值得学习。虽然是从延时回调处理中独立出来的,但是它的功能非常强大,提供了一种强大的方法来管理回调函数队列。  大家都明白封装函数的目的:去耦合与简化操作。  通常情况下函数队列的处理方式//执行函数function runList(arr){for(var i = 0; i < arr.l...

jQuery-1.9.1源码分析系列(十一) DOM操作续——克隆节点【代码】【图】

什么情况下使用到克隆节点?  我们知道在对DOM操作过程中如果直接使用节点会出现节点随操作而变动的情况。比如对节点使用.after/.before/.append等方法后,节点被添加到新的地方,原来的位置上的节点被移除了。有的时候需要保留原来位置上的节点,仅仅是需要一个副本添加到对应位置,这个时候克隆就有了使用场景。   jQuery.fn.clone克隆当前匹配元素集合的一个副本,并以jQuery对象的形式返回。  你还可以指定是否复制这些匹...

jQuery1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween_jquery【图】

在jQuery内部函数Animation中调用到了createTweens()来创建缓动动画组,创建完成后的结果为:可以看到上面的缓动动画组有四个原子动画组成。每一个原子动画的信息都包含在里面了。仔细查看createTweens函数,实际上就是遍历调用了tweeners ["*"]的数组中的函数(实际上就只有一个元素)。再次查看这个tweeners ["*"][0]函数,主要代码如下function( prop, value ) {var end, unit,//根据css特征值获取缓动动画结构tween = this.c...

jQuery源码分析之Callbacks详解

代码的本质突出顺序、有序这一概念,尤其在javascript——毕竟javascript是单线程引擎。 javascript拥有函数式编程的特性,而又因为javascript单线程引擎,我们的函数总是需要有序的执行。优秀代码常常 把函数切割成各自的模块,然后在某一特定条件下执行,既然这些函数是有序的执行,那么我们为什么不编写一个统一管理的对象,来帮助我们管理这些函数——于是,Callbacks(回调函数)诞生。 什么是Callbacks javascript中充斥着函...

jQuery源码分析之Callbacks详解_jquery

代码的本质突出顺序、有序这一概念,尤其在javascript——毕竟javascript是单线程引擎。 javascript拥有函数式编程的特性,而又因为javascript单线程引擎,我们的函数总是需要有序的执行。优秀代码常常 把函数切割成各自的模块,然后在某一特定条件下执行,既然这些函数是有序的执行,那么我们为什么不编写一个统一管理的对象,来帮助我们管理这些函数——于是,Callbacks(回调函数)诞生。 什么是Callbacks javascript中充斥着函...

cultofpersonalityjQuery源码分析笔记

jQuery的宗旨是Write Less, Do More。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,...