init: function(selector) {
this.selector = selector;
return this;
},為什么要return this呢
this.selector = selector;
return this;
},為什么要return this呢
2016-08-09
下面的寫法看似復雜了點,其實最直接的就是直接設置一個memory,每次執行完代碼都自動更新memory的值,在add時候,直接執行fn(memory)就可以了。但是作者考慮到既然都是執行回調函數,我可以直接寫一個_fire()方法,無論在 add中還是fire()中都可以使用。所以顯得復雜了一些。如果單純不考慮代碼模塊化,可以自己簡單寫一下,代碼量縮小了一半多。當然,此處還是建議大家學習本課中提到的方法
2016-08-06
跟多個函數放到一個函數中一次執行有什么不同,不明白
__________________
到時是對的,但是在調用的時候,只用放一次,而且放到一個函數中這個過程是通過方法來添加的,而不是直接在代碼中添加。所謂的“組件”的思想。而且,最重要的是,注意這句話:當一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應該考慮使用觀察者模式。 如果一次把多個函數放到一個函數中,不僅僅可能造成這個函數過于龐大(比如要同時執行幾十上百個函數),而且每次十分不靈巧,函數變得不夠“單純”,換句話說,太low了。。。
__________________
到時是對的,但是在調用的時候,只用放一次,而且放到一個函數中這個過程是通過方法來添加的,而不是直接在代碼中添加。所謂的“組件”的思想。而且,最重要的是,注意這句話:當一個對象的改變需要同時改變其它對象,并且它不知道具體有多少對象需要改變的時候,就應該考慮使用觀察者模式。 如果一次把多個函數放到一個函數中,不僅僅可能造成這個函數過于龐大(比如要同時執行幾十上百個函數),而且每次十分不靈巧,函數變得不夠“單純”,換句話說,太low了。。。
2016-08-04
這里有個有意思的事情,$('#end').find('li').prevObject===$('#end')總是返回false,其實$('#end')===$('#end')也會返回false。這里是因為每一次使用$()就會調用new jQuery(),形成的即便傳了相同的參數也不是同一個對象
2016-07-31
find pushStack兩個函數對象連起來看才好理解。前一個 ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);此處this指find前的jQuery對象,因為是this在調用pushStack函數,所以pushStack函數中的this也可以視為find前的jQuery對象,在pushStack中,把this(也即find前的jQuery對象)賦給ret.prevObject屬性,此處兩個確實是一個引用。
2016-07-31
對于程序員來說,有基本素養就是首先你會自學,第二你要明白任何知識的獲得都是自己好奇心在驅動,而不是坐等從小到大的填鴨式教育。
2016-07-31