類數(shù)組對(duì)象就是類似一個(gè)數(shù)組的對(duì)象,對(duì)象默認(rèn)是沒有l(wèi)ength屬性的,所以
1,必須構(gòu)造一個(gè)length屬性。
2,必須有下標(biāo)0,1,2...n(必須連續(xù)遞增,不能是0,3,4)
3,且length <= (n+1)
起始下標(biāo)就是對(duì)象的屬性,這個(gè)屬性在對(duì)象里通過this[i]使用
jQuery()的結(jié)果就存儲(chǔ)在this[i]里,get(i)相當(dāng)于調(diào)用了this[i]
1,必須構(gòu)造一個(gè)length屬性。
2,必須有下標(biāo)0,1,2...n(必須連續(xù)遞增,不能是0,3,4)
3,且length <= (n+1)
起始下標(biāo)就是對(duì)象的屬性,這個(gè)屬性在對(duì)象里通過this[i]使用
jQuery()的結(jié)果就存儲(chǔ)在this[i]里,get(i)相當(dāng)于調(diào)用了this[i]
2015-02-17
常規(guī):1.定義函數(shù)function fn(){a,b} ;2.傳參并運(yùn)行fn('aa','bb');
立即運(yùn)行分解:第一步定義函數(shù):function(a,b){},第二步傳參并運(yùn)行:( function(a,b){} )('aa','bb')。
另外不管是有名還是無名函數(shù),在內(nèi)存里都有一個(gè)指針指向函數(shù)。
立即運(yùn)行分解:第一步定義函數(shù):function(a,b){},第二步傳參并運(yùn)行:( function(a,b){} )('aa','bb')。
另外不管是有名還是無名函數(shù),在內(nèi)存里都有一個(gè)指針指向函數(shù)。
2015-02-17
這個(gè)要有編譯原理的功底才能理解,js的語法分析器規(guī)則是:當(dāng)“()”作為一個(gè)運(yùn)算符時(shí)(權(quán)威指南里有詳細(xì)的說明),里面填的都解釋為表達(dá)式,既然是表達(dá)式就有結(jié)果,這個(gè)結(jié)果就是一個(gè)無名函數(shù)的指針(或者說引用),這個(gè)指針在內(nèi)存的函數(shù)棧里,然后再用“()”運(yùn)行這個(gè)無名函數(shù)。跟先定義一個(gè)函數(shù),然后用()調(diào)用它是一個(gè)道理。
2015-02-17
在一個(gè)jquery對(duì)象的基礎(chǔ)上,查找另一個(gè)jquery對(duì)象,這個(gè)新的jquery對(duì)象有一個(gè)prevObject屬性,這個(gè)屬性保存著你上一個(gè)jquery對(duì)象,end方法就是返回這個(gè)屬性,其實(shí)每一個(gè)jquery對(duì)象都有這個(gè)屬性,第一次得到的jquery對(duì)象(沒有在一個(gè)jquery對(duì)象的基礎(chǔ)上查找的jquery對(duì)象),也有prevObject屬性($(null))
2015-02-13
可以在火狐控制臺(tái)看console.log( function(){} );打印的對(duì)象,用這個(gè)最直觀。
js里創(chuàng)建函數(shù)對(duì)象后,隱含就會(huì)創(chuàng)建 prototype ,prototype 中有constructor屬性指向函數(shù)自身,ajQuery.fn = ajQuery.prototype = { ... } 把原來 prototype 覆蓋了,所以要修正一下constructor屬性,要不然就沒有constructor屬性了。
js里創(chuàng)建函數(shù)對(duì)象后,隱含就會(huì)創(chuàng)建 prototype ,prototype 中有constructor屬性指向函數(shù)自身,ajQuery.fn = ajQuery.prototype = { ... } 把原來 prototype 覆蓋了,所以要修正一下constructor屬性,要不然就沒有constructor屬性了。
2015-02-13