繁花不似錦
2018-11-14 13:10:20
js中一般認(rèn)為類數(shù)組滿足下面幾個(gè)條件1一個(gè)對(duì)象的屬性名是正整數(shù)2有l(wèi)ength屬性,屬性值為正整數(shù)3不是數(shù)組在jq中還有DOM中大量應(yīng)用類數(shù)組,那為什么類數(shù)組也能像數(shù)組一樣進(jìn)行遍歷,其可以調(diào)用Array.prototype.方法()?原理是什么,類數(shù)組中數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)又是怎樣的,與一般對(duì)象有什么不同,與真正的數(shù)組又有什么不同?
1 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
1.遍歷通過的是length,以及i++,這么個(gè)東東,那個(gè)對(duì)象let s = {0:'a',1:'b'}
中s[0]就是'a'呀。所以可以像數(shù)組一樣遍歷咯。
2.第二個(gè)問題,調(diào)用Array.prototype中的方法,你不妨打印出來看一下
而所謂的類數(shù)組是Object,所以你再答應(yīng)一下Object.prototype
所以說,類數(shù)組是沒有所謂的push,pop之類的方法,當(dāng)然了,你也可以自己寫這些方法
3.存儲(chǔ)結(jié)構(gòu)嘛,就是Object,只不過規(guī)定好了你問題中前兩個(gè)條件。與一般對(duì)象不同,我沒明白一般對(duì)象是什么,難道類數(shù)組不是一般對(duì)象?
4.與數(shù)組的不同嘛,這個(gè)別人也寫的很全,你可以參考一下
ps:都是個(gè)人理解,有不正確的或者補(bǔ)充請(qǐng)指教,互相學(xué)習(xí)~
添加回答
舉報(bào)
0/150
提交
取消