各位注意:
var _jQuery = window.jQuery,
_$ = window.$;
這段代碼是放到Jquery的最前面,不然就保存不到window.$原先的內(nèi)容了
var _jQuery = window.jQuery,
_$ = window.$;
這段代碼是放到Jquery的最前面,不然就保存不到window.$原先的內(nèi)容了
2016-10-07
非常棒的理解,看到就轉(zhuǎn)了下哈
理解:1.$(),jQuery()是執(zhí)行一個(gè)函數(shù),$和jQuery是函數(shù)名稱,這個(gè)函數(shù)返回的是一個(gè)對(duì)象,所以里面是一個(gè)new表達(dá)式,但是名字不能是自己,否則無限循環(huán)。2.既然不是自己,其實(shí)可以理解為jQuery()返回的不是jQuery對(duì)象,而是jQuery.fn.init(一個(gè)名字而已)對(duì)象。3.但是為了統(tǒng)一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype.
后面還有4.............不能超過3000字
理解:1.$(),jQuery()是執(zhí)行一個(gè)函數(shù),$和jQuery是函數(shù)名稱,這個(gè)函數(shù)返回的是一個(gè)對(duì)象,所以里面是一個(gè)new表達(dá)式,但是名字不能是自己,否則無限循環(huán)。2.既然不是自己,其實(shí)可以理解為jQuery()返回的不是jQuery對(duì)象,而是jQuery.fn.init(一個(gè)名字而已)對(duì)象。3.但是為了統(tǒng)一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype.
后面還有4.............不能超過3000字
2016-10-06
確實(shí)經(jīng)典,$.data 與 $().data,公用同一個(gè)方法,internalData()很巧妙的分開,內(nèi)部使用;外部使用包括$.data 與 $().data兩種方法,根據(jù)傳遞dom與jquery的不同,兩種模式存儲(chǔ),贊贊,mark
2016-10-06
[this[j]]返回是數(shù)組形式,pushStack,新建jQuery并且加工
2016-10-04
作用域是函數(shù)和變量的可訪問范圍,作用域控制函數(shù)和變量的可見性,而作用域鏈?zhǔn)呛瘮?shù)建立過程中,與之對(duì)應(yīng)變量對(duì)象(variable object)的集合
2016-10-03
上下文的建立階段,先是處理arguments, 參數(shù),接著是函數(shù)的聲明,最后是變量的聲明,會(huì)把變量自動(dòng)賦值為undefined,所以var aQuery2=function(){} 為undefined, 而 function aQuery1(){} 正常輸出
2016-10-02
https://github.com/jquery/jquery/blob/10399ddcf8a239acc27bdec9231b996b178224d3/src/core/ready.js#L80
2016-09-30
看源碼發(fā)現(xiàn)左側(cè)代碼是有問題的。源碼可以很清楚的看到callback.call里是傳入了index(i)的值的。源碼是if ( isArrayLike( obj ) ) {
length = obj.length;
for ( ; i < length; i++ ) {
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
break;
}
}
}
length = obj.length;
for ( ; i < length; i++ ) {
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
break;
}
}
}
2016-09-30
需要在var results = document.querySelectorAll(selector);后面加上這一句this.length = results.length;
2016-09-30