理解:1.$(),jQuery()是執(zhí)行一個函數,$和jQuery是函數名稱,這個函數返回的是一個對象,所以里面是一個new表達式,但是名字不能是自己,否則無限循環(huán)。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回調函數時就執(zhí)行這個回調函數的作用, 你說的那個寫法是jQ源碼里面的方式,其實道理一樣的。JQ對傳入的參數多進行了一步操作
if (memory) {
firingStart = start; //獲取最后一值
_fire(memory);
}
這段代碼使用,達到add回調函數時就執(zhí)行這個回調函數的作用, 你說的那個寫法是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