理解:1.$(),jQuery()是執(zhí)行一個(gè)函數(shù),$和jQuery是函數(shù)名稱(chēng),這個(gè)函數(shù)返回的是一個(gè)對(duì)象,所以里面是一個(gè)new表達(dá)式,但是名字不能是自己,否則無(wú)限循環(huán)。2.既然不是自己,其實(shí)可以理解為jQuery()返回的不是jQuery對(duì)象,而是jQuery.fn.init(一個(gè)名字而已)對(duì)象。3.但是為了統(tǒng)一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype.
后面還有4.............不能超過(guò)3000字
后面還有4.............不能超過(guò)3000字
2015-01-13
@vfan140 沒(méi)有不對(duì), options === 'memory' 是判定當(dāng)前是memory的Callback 時(shí), 就將data保存在memory中,以便下面的
if (memory) {
firingStart = start; //獲取最后一值
_fire(memory);
}
這段代碼使用,達(dá)到add回調(diào)函數(shù)時(shí)就執(zhí)行這個(gè)回調(diào)函數(shù)的作用, 你說(shuō)的那個(gè)寫(xiě)法是jQ源碼里面的方式,其實(shí)道理一樣的。JQ對(duì)傳入的參數(shù)多進(jìn)行了一步操作
if (memory) {
firingStart = start; //獲取最后一值
_fire(memory);
}
這段代碼使用,達(dá)到add回調(diào)函數(shù)時(shí)就執(zhí)行這個(gè)回調(diào)函數(shù)的作用, 你說(shuō)的那個(gè)寫(xiě)法是jQ源碼里面的方式,其實(shí)道理一樣的。JQ對(duì)傳入的參數(shù)多進(jìn)行了一步操作
2015-01-08
(options = arguments[i]) != null這邊為何要賦值給options再操作呢?為何不直接操作arguments[i]
2015-01-07
說(shuō)得太好了 “這是一種生活態(tài)度” 我經(jīng)常問(wèn)自己是不是為了加薪才看源碼,其實(shí)是我心中有寫(xiě)個(gè)框架的小沖動(dòng)
2015-01-03
這里關(guān)系到一個(gè)extentd第一個(gè)參數(shù) 是否深度復(fù)制的處理
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是為了判斷克隆是不是一個(gè)深層次的對(duì)象,用來(lái)逐個(gè)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是為了判斷克隆是不是一個(gè)深層次的對(duì)象,用來(lái)逐個(gè)clone
2014-12-29
上面加個(gè) $jQuery.fn.init.prototype = $jQuery.fn; 就和jQuery 一樣了
2014-12-24