【jQuery 源码分析笔记(6) jQuery.data】教程文章相关的互联网学习教程文章

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都是松散的函数,...

jQuery源码分析笔记_PHP教程

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

jQuery源码分析笔记_PHP

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

jQuery源码分析笔记_php技巧

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

jQuery 源码分析笔记

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

jQuery源码分析之makeArray方法

在jQuery中,makeArray是一个私有的方法,它主要用于将“类数组对象”转换为数组。那什么是“类数组对象”?比方说每一个function中都有一个arguments对象,它是实参列表,拥有length属性,还可以通过下标来访问实参。 function foo(){//1console.log(arguments.length);//10console.log(arguments[0]);}foo(10);除此之外,像HTMLCollection,NodeList等类型的对象也是“类数组对象”。它们的共性有2点:1.拥有length属性。2.可以通...

jQuery中静态方法inArray,grep,merge,makeArray的使用以及源码分析

inArray方法 确定第一个参数在数组中的位置,从0开始计数(如果没有找到则返回 -1 )。示例:var arr = [ 4, "Pete", 8, "John" ];jQuery.inArray("John", arr); //3jQuery.inArray(4, arr); //0jQuery.inArray("David", arr); //-1jQuery.inArray("Pete", arr, 2); //-1源码分析:inArray: function( elem, array, i ) {var len;if ( array ) {if ( indexOf ) {return indexOf.call( array, elem, i );}len = array.length;i = ...

Jquery1.9.1源码分析系列动画处理之外篇

这篇文章主要介绍了Jquery1.9.1源码分析系列(十五)动画处理之外篇 的相关资料,需要的朋友可以参考下a.动画兼容Tween.propHooks  Tween.propHooks提供特殊情况下设置、获取css特征值的方法,结构如下Tween.propHooks = {_default: {get: function(){...},set: function(){...}},scrollTop: {set: function(){...}}scrollLeft: {set: function(){...}} }  Tween.propHooks.scrollTop 和Tween.propHooks.scrollLeft两个主要是在...

jQuery源码分析之Event事件分析_jquery

对于事件的操作无非是addEvent,fireEvent,removeEvent这三个事 件方法。一般lib都会对浏览器的提供的函数做一些扩展,解决兼容性内存泄漏等问题。第三个问题就是如何得到domReady的状态。   6.1 event的包裹   浏览器的事件兼容性是一个令人头疼的问题。IE的event在是在全局的window下, 而mozilla的event是事件源参数传入到回调函数中。还有很多的事件处理方式也一样。   Jquery提供了一个 event的包裹,这个相对于其它的li...

jQuery源码分析笔记(2)变量列表_jquery

_jQuery = window.jQuery; _$ = window.$; 这两个变量是jQuery唯一使用的两个全局变量。在jQuery.noConflict()函数中,会把这两个变量恢复回去。 对于浏览器检测,jQuery使用的是检查UserAgent,而没有使用特性检测。 rwebkit = /(webkit)[ \/]([\w.]+)/, ropera = /(opear)(?:.*version)?[ \/](\w+)/, rmsie = /(msie) ([\w.]+)/, rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, 初始化函数init jQuery对JS对象的处理比较绕,而最终...

jQuery源码分析笔记(5)jQuery.support_jquery

其中jQuery.browser已经提供了根据UserAgent检测的浏览器信息。而jQuery.support 使用特性检测来检查浏览器的功能以及Bug。 和文档一样,首先说明一下,这个模块是很底层的代码,基本不需要在日常开发中使用,但是插件的开发者更需要。因为插件需要兼容各个浏览器。首先看一下 support模块提供了哪些浏览器特性的检测,以下结果是在Chrome 13 Dev下看到的结果。根据浏览器的不同,这里的成员可能会有变化。(PS:再次吐槽IE,大部分...

jQuery源码分析笔记(6)jQuery.data_jquery【图】

data部分的代码从1381行开始。最开始的几行关键代码: 代码如下: jQuery.extend({ // 存储数据的地方,关键实现核心 cache: { }, // 分配ID用的seed uuid: 0, // 为了区别不同的jQuery实例存储的数据,使用前缀+jQuery版本号+随机数作为Key expando: "jQuery" + (jQuery.fn.jquery + Math.random()).replace(/\D/g, ""), // 以下元素没有Data:embed和applet(这玩意还活着么),除了Flash之外的object。 noData: { "embed": true...

jQuery源码分析笔记(4)Ready函数_jquery

这个功能在 jQuery的文档中提到了三种等价的形式: 代码如下: // 定义在jQuery.fn.ready $(document).ready(handler); // 和上一个是同一个,不推荐 $().ready(handler); // 单独在jQuery对象中处理 $(handler); // 以上这个形式的定义: if(jQuery.isFunction(selector) { return rootjQuery.ready(selector); } 因此实际上都归结与一个形式:jQuery.fn.ready(fn)。定义如下: 代码如下: ready: function(fn) { // 绑定事件到D...

jQuery源码分析笔记(3)Deferred机制_jquery

Deferred把回调函数注册到一个队列中,统一管理,并且可以同步或者异步地调用这些函数。jQuery.Deferred()用来构造一个Deferred对象。该对象有状态值,共有三种: Rejected, Resolved和初始状态。其中Resolved表示该操作成功完成了,而Rejected 则表示出现了错误,调用失败。Deferred对象的主要成员如下: done(callback): 注册一个callback函数,当状态为resolved时被调用。 * fail(callback): 注册一个callback函数,当状态为reje...