亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
不太好理解
這里需要只需來可能有些API上是andSelf,因為就Query的api是這樣寫的,andSelf現在是.addBack()的一個別名。在jQuery1.8和更高版本中應使用.addBack()

源碼其實也是這樣的

jQuery.fn.andSelf = jQuery.fn.addBack
已經修改了,回溯的方法是end
沒有andBack這個函數
jQuery內部使用了,具體
pushStack: function(elems) {
var ret = jQuery.merge(this.constructor(), elems);
ret.prevObject = this;
ret.context = this.context;
return ret;
},
this.constructor() 指向了jQuery類
我是模擬的代碼,這個是模擬jquery的機制,如果要完整的實現,代碼量相當的大的。選擇器sizzle就有2000多行
jQuery就是這樣實現的,其實原理很簡單,無非就是保存了上一次的引用,
_$ = window.$;
window.$ = _$;
就是一個交換的原理,如果調用了noConflict方法,就把之前保存的_$覆蓋當前的$
要特別注意的事,必須在加載jQuery之前已經存在一個$命名空間的庫,否則_$ = window.$就沒有意義了
原來從集合中從末尾開始倒數取值是這樣做的哇:
num < 0 ? this[num + this.length] : this[num]
學習了
額,寫錯了,是andSelf
addSelf竟然已被廢除,換成addBack了
$$().setName('慕課網-Aaron').getName();或
$$(1).setName('慕課網-Aaron').getName();沒區別呀?
這樣的話i的初始值是不是該為0
我沒搞懂constructor: ajQuery是什么作用。constructor好像不常用
fn是prototype的縮寫,別名。也就是看到的這個:
jQuery.fn = jQuery.prototype = {
init:function(){
return this
}
首先,右邊最后那段代碼init函數少傳個selector參數,再者,init函數里面應該返回this吧?
為什么jquery使用init方法就能避免無限遞歸呢?應該這樣理解嗎?:
通過init為橋梁返回該對象,避免了new該對象(實際也是在調用),導致無限遞歸。
簡單的無限遞歸模擬:
function ajQuery = (selector) {
return new ajQuery(selector);
}
且是var而不是Var
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎運用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎功底,甚至還需要理解常見的設計模式、數據結構等等。當然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學習過程。
老師告訴你能學到什么?
通過本課程的學習,您可以由淺入深地剖析jQuery庫的設計與實現。 其中我們圍繞的重心: 1、設計理念 2、結構組織 3、接口設計 4、模式運用 5、場景套用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消