不懂啊 这一节!1、
var $$ = ajQuery = function(selector) {
//把原型上的init作为构造器
return new ajQuery.fn.init( selector );
}
这个明明就有new啊
还有constructor: ajQuery 为什么要这么做?这么做了 就可以不用new了?
var $$ = ajQuery = function(selector) {
//把原型上的init作为构造器
return new ajQuery.fn.init( selector );
}
这个明明就有new啊
还有constructor: ajQuery 为什么要这么做?这么做了 就可以不用new了?
把相似的属性或者相似的方法,集中在一起,然后对这些相似的属性的值,或者相似方法的返回值,进行统一的处理,节约代码,就是所谓的“接口的抽象合并”
2015-01-15
4.特别注意jQuery.prototype={
constructor:jQuery
},这个constructr属性通过前面的赋值,也变成了jQuery.fn.init.prototype的属性,从而把Query.fn.init对象,变成的jQuery对象(只要明白constructr的意思)。---------也就是无new得到jQuery对象
constructor:jQuery
},这个constructr属性通过前面的赋值,也变成了jQuery.fn.init.prototype的属性,从而把Query.fn.init对象,变成的jQuery对象(只要明白constructr的意思)。---------也就是无new得到jQuery对象
理解:1.$(),jQuery()是执行一个函数,$和jQuery是函数名称,这个函数返回的是一个对象,所以里面是一个new表达式,但是名字不能是自己,否则无限循环。2.既然不是自己,其实可以理解为jQuery()返回的不是jQuery对象,而是jQuery.fn.init(一个名字而已)对象。3.但是为了统一和方法/属性的共用(理解原型链),jQUuery这样处理,jQuery.fn.init.prototype = jQuery.prototype.
后面还有4.............不能超过3000字
后面还有4.............不能超过3000字
@vfan140 没有不对, options === 'memory' 是判定当前是memory的Callback 时, 就将data保存在memory中,以便下面的
if (memory) {
firingStart = start; //获取最后一值
_fire(memory);
}
这段代码使用,达到add回调函数时就执行这个回调函数的作用, 你说的那个写法是jQ源码里面的方式,其实道理一样的。JQ对传入的参数多进行了一步操作
if (memory) {
firingStart = start; //获取最后一值
_fire(memory);
}
这段代码使用,达到add回调函数时就执行这个回调函数的作用, 你说的那个写法是jQ源码里面的方式,其实道理一样的。JQ对传入的参数多进行了一步操作
2015-01-08
(options = arguments[i]) != null这边为何要赋值给options再操作呢?为何不直接操作arguments[i]
2015-01-07
已采纳回答 / 艾伦Aaron
首先,回调函数是从异步队列分离出来的,那么就是无缝贴合Deferred的设计可以查看下Deferred模块会有这么一段代码<...code...>这里设计到规范的接口,done | fail | progress方法都是通过jQuery.Callba...
2015-01-04