理解: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
这里关系到一个extentd第一个参数 是否深度复制的处理
var object1 = {
banana: {weight: 52, price: 100},
};
var object2 = {
banana: {price: 200}
};
$.extend(object1, object2); //{banana: {price: 200}}
$.extend(ture,object1, object2); //{banana: {price: 200,weight: 52}}
jQuery是为了判断克隆是不是一个深层次的对象,用来逐个clone
var object1 = {
banana: {weight: 52, price: 100},
};
var object2 = {
banana: {price: 200}
};
$.extend(object1, object2); //{banana: {price: 200}}
$.extend(ture,object1, object2); //{banana: {price: 200,weight: 52}}
jQuery是为了判断克隆是不是一个深层次的对象,用来逐个clone
2014-12-29