各位注意:
var _jQuery = window.jQuery,
_$ = window.$;
這段代碼是放到Jquery的最前面,不然就保存不到window.$原先的內容了
var _jQuery = window.jQuery,
_$ = window.$;
這段代碼是放到Jquery的最前面,不然就保存不到window.$原先的內容了
2016-10-07
非常棒的理解,看到就轉了下哈
理解:1.$(),jQuery()是執行一個函數,$和jQuery是函數名稱,這個函數返回的是一個對象,所以里面是一個new表達式,但是名字不能是自己,否則無限循環。2.既然不是自己,其實可以理解為jQuery()返回的不是jQuery對象,而是jQuery.fn.init(一個名字而已)對象。3.但是為了統一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype.
后面還有4.............不能超過3000字
理解:1.$(),jQuery()是執行一個函數,$和jQuery是函數名稱,這個函數返回的是一個對象,所以里面是一個new表達式,但是名字不能是自己,否則無限循環。2.既然不是自己,其實可以理解為jQuery()返回的不是jQuery對象,而是jQuery.fn.init(一個名字而已)對象。3.但是為了統一和方法/屬性的共用(理解原型鏈),jQUuery這樣處理,jQuery.fn.init.prototype = jQuery.prototype.
后面還有4.............不能超過3000字
確實經典,$.data 與 $().data,公用同一個方法,internalData()很巧妙的分開,內部使用;外部使用包括$.data 與 $().data兩種方法,根據傳遞dom與jquery的不同,兩種模式存儲,贊贊,mark
2016-10-06
作用域是函數和變量的可訪問范圍,作用域控制函數和變量的可見性,而作用域鏈是函數建立過程中,與之對應變量對象(variable object)的集合
上下文的建立階段,先是處理arguments, 參數,接著是函數的聲明,最后是變量的聲明,會把變量自動賦值為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
看源碼發現左側代碼是有問題的。源碼可以很清楚的看到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