jQuery源码分析-03构造jQuery对象-源码结构和核心函数jQuery.fn和jQuery.prototype区别 原文:http://www.cnblogs.com/littlewriter/p/6391445.html
$.when的说明描述: 提供一种方法来执行一个或多个对象的回调函数,返回这些对象的延时(Deferred)对象。 说明(结合实例和源码): 如果你不传递任何参数, jQuery.when()将返回一个resolved(解决)状态的promise对象。 如果向jQuery.when()传入一个参数 , 并且它不是一个Deferred或Promise对象, 那么它会被当作是一个被解决(resolved)的延迟对象,并且绑定到上面的任何 doneCallbacks 都会被立刻执行。向 doneCal...
jQuery.Callbacks()提供的回调函数队列管理本来是延时回调处理的一部分,但是后面将其独立出来作为一个模块。jQuery就是这样,各个模块间的代码耦合度是处理的比较好的,值得学习。虽然是从延时回调处理中独立出来的,但是它的功能非常强大,提供了一种强大的方法来管理回调函数队列。 大家都明白封装函数的目的:去耦合与简化操作。 通常情况下函数队列的处理方式//执行函数function runList(arr){for(var i = 0; i < arr.l...
什么情况下使用到克隆节点? 我们知道在对DOM操作过程中如果直接使用节点会出现节点随操作而变动的情况。比如对节点使用.after/.before/.append等方法后,节点被添加到新的地方,原来的位置上的节点被移除了。有的时候需要保留原来位置上的节点,仅仅是需要一个副本添加到对应位置,这个时候克隆就有了使用场景。 jQuery.fn.clone克隆当前匹配元素集合的一个副本,并以jQuery对象的形式返回。 你还可以指定是否复制这些匹...
在jQuery内部函数Animation中调用到了createTweens()来创建缓动动画组,创建完成后的结果为:可以看到上面的缓动动画组有四个原子动画组成。每一个原子动画的信息都包含在里面了。仔细查看createTweens函数,实际上就是遍历调用了tweeners ["*"]的数组中的函数(实际上就只有一个元素)。再次查看这个tweeners ["*"][0]函数,主要代码如下function( prop, value ) {var end, unit,//根据css特征值获取缓动动画结构tween = this.c...
代码的本质突出顺序、有序这一概念,尤其在javascript——毕竟javascript是单线程引擎。
javascript拥有函数式编程的特性,而又因为javascript单线程引擎,我们的函数总是需要有序的执行。优秀代码常常 把函数切割成各自的模块,然后在某一特定条件下执行,既然这些函数是有序的执行,那么我们为什么不编写一个统一管理的对象,来帮助我们管理这些函数——于是,Callbacks(回调函数)诞生。
什么是Callbacks
javascript中充斥着函...
代码的本质突出顺序、有序这一概念,尤其在javascript——毕竟javascript是单线程引擎。
javascript拥有函数式编程的特性,而又因为javascript单线程引擎,我们的函数总是需要有序的执行。优秀代码常常 把函数切割成各自的模块,然后在某一特定条件下执行,既然这些函数是有序的执行,那么我们为什么不编写一个统一管理的对象,来帮助我们管理这些函数——于是,Callbacks(回调函数)诞生。
什么是Callbacks
javascript中充斥着函...
jQuery的宗旨是Write Less, Do More。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,...
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的宗旨是Write Less, Do More。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,...
jQuery的宗旨是Write Less, Do More。它对JavaScript的开发风格侵入性不如YUI那么强,当然也不如Dojo和YUI如此庞大。它极大的简化了JavaScript的日常开发工作,主要是DOM元素的操作(从名字Query就可以看出)。另外一个主要工作就是每个前端开发者都需要面对的浏览器兼容性。jQuery兼容所有主流浏览器的大部分版本,从万恶的IE6开始直到Firefox,Chrome等现代浏览器。除了居于核心的一小部分代码之外,剩下的jQuery都是松散的函数,...
在jQuery中,makeArray是一个私有的方法,它主要用于将“类数组对象”转换为数组。那什么是“类数组对象”?比方说每一个function中都有一个arguments对象,它是实参列表,拥有length属性,还可以通过下标来访问实参。 function foo(){//1console.log(arguments.length);//10console.log(arguments[0]);}foo(10);除此之外,像HTMLCollection,NodeList等类型的对象也是“类数组对象”。它们的共性有2点:1.拥有length属性。2.可以通...
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源码分析系列(十五)动画处理之外篇 的相关资料,需要的朋友可以参考下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两个主要是在...