成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript 類數(shù)組對(duì)象

haobowd / 3619人閱讀

摘要:定義類數(shù)組對(duì)象的定義可以通過(guò)索引訪問(wèn)元素,并且擁有屬性沒(méi)有數(shù)組的其他方法,例如,,等。所以當(dāng)后面的作用對(duì)象是一個(gè)類數(shù)組時(shí),就會(huì)把這個(gè)類數(shù)組對(duì)象轉(zhuǎn)換為了一個(gè)新的數(shù)組。

定義

JavaScript 類數(shù)組對(duì)象的定義:

可以通過(guò)索引訪問(wèn)元素,并且擁有 length 屬性;

沒(méi)有數(shù)組的其他方法,例如 push , forEach , indexOf 等。

舉例說(shuō)明

var foo = {
    0: "Java",
    1: "Python",
    2: "Scala",
    length: 3
}
轉(zhuǎn)換

如果類數(shù)組對(duì)象需要轉(zhuǎn)化為數(shù)組,可以用 Array.prototype.slice.call

var foo = {
    0: "Java",
    1: "Python",
    2: "Scala",
    length: 3
}

var arr = Array.prototype.slice.call(foo);

其實(shí)一開(kāi)始看到這個(gè)表達(dá)式感覺(jué)比較費(fèi)解,后來(lái)查了一些資料,終于明白了,特別做一些說(shuō)明:

第一, foo 本來(lái)是沒(méi)有 slice 方法的, Array.prototype.slice.call(foo) 這個(gè)表達(dá)式相當(dāng)于賦予 foo 這個(gè)對(duì)象 slice 方法。

第二, Array.prototype.slice.call(foo); 相當(dāng)于 Array.prototype.slice.call(foo, 0); 是把取一個(gè)數(shù)組(或者類數(shù)組)的子集,并作為一個(gè)數(shù)組返回。所以當(dāng)后面的作用對(duì)象是一個(gè)類數(shù)組時(shí),就會(huì)把這個(gè)類數(shù)組對(duì)象轉(zhuǎn)換為了一個(gè)新的數(shù)組。

所以,上面的一段代碼等價(jià)于

var foo = {
    0: "Java",
    1: "Python",
    2: "Scala",
    length: 3
}

foo.slice = Array.prototype.slice;
foo.slice();
特性

類數(shù)組只有索引值和長(zhǎng)度,沒(méi)有數(shù)組的各種方法,所以如果要類數(shù)組調(diào)用數(shù)組的方法,就需要使用 Array.prototype.method.call 來(lái)實(shí)現(xiàn)。

例如,如果遍歷一個(gè)類數(shù)組,可以這樣實(shí)現(xiàn):

Array.prototype.forEach.call(foo, function(item){
    console.log(item);
});

添加一個(gè)元素

Array.prototype.push.call(foo, "PHP");

// foo = {0: "Java", 1: "Python", 2: "Scala 111", 3: "PHP", length: 4}

原文:https://blog.taotao.io/javascript-array-like-object/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79716.html

相關(guān)文章

  • 深入理解JavaScript數(shù)組

    摘要:但是,我們可以借用類數(shù)組方法不難看出,此時(shí)的在調(diào)用數(shù)組原型方法時(shí),返回值已經(jīng)轉(zhuǎn)化成數(shù)組了。很多時(shí)候,深入看看源代碼也會(huì)讓你對(duì)這個(gè)理解的更透徹。的前端樂(lè)園原文鏈接深入理解類數(shù)組 起因 寫(xiě)這篇博客的起因,是我在知乎上回答一個(gè)問(wèn)題時(shí),說(shuō)自己在學(xué)前端時(shí)把《JavaScript高級(jí)程序設(shè)計(jì)》看了好幾遍。于是在評(píng)論區(qū)中,出現(xiàn)了如下的對(duì)話:showImg(https://segmentfault.c...

    Towers 評(píng)論0 收藏0
  • JavaScript深入之數(shù)組對(duì)象與arguments

    摘要:在客戶端中,一些方法等也返回類數(shù)組對(duì)象。對(duì)象接下來(lái)重點(diǎn)講講對(duì)象。在函數(shù)體中,指代該函數(shù)的對(duì)象。下一篇文章深入之創(chuàng)建對(duì)象的多種方式以及優(yōu)缺點(diǎn)深入系列深入系列目錄地址。 JavaScript深入系列第十三篇,講解類數(shù)組對(duì)象與對(duì)象的相似與差異以及arguments的注意要點(diǎn) 類數(shù)組對(duì)象 所謂的類數(shù)組對(duì)象: 擁有一個(gè) length 屬性和若干索引屬性的對(duì)象 舉個(gè)例子: var array = ...

    AlienZHOU 評(píng)論0 收藏0
  • 理解javascript數(shù)組

    摘要:也就是說(shuō),為一些常規(guī)對(duì)象增加一些屬性可以使其變成類數(shù)組對(duì)象。實(shí)際上,類數(shù)組的定義只有一條,具有屬性。在中,所有的數(shù)組方法都是通用的。 什么是類數(shù)組 javascript中一些看起來(lái)像卻不是數(shù)組的對(duì)象,叫做類數(shù)組。也就是說(shuō),為一些常規(guī)對(duì)象增加一些屬性可以使其變成類數(shù)組對(duì)象。 類數(shù)組的特征: 有索引(數(shù)字)屬性和length屬性的對(duì)象 不具有數(shù)組的方法。間接調(diào)用數(shù)組的一些方法,比如pus...

    yzzz 評(píng)論0 收藏0
  • javascript 數(shù)組

    摘要:中常見(jiàn)的類數(shù)組有對(duì)象和方法的返回結(jié)果。類數(shù)組判斷權(quán)威指南上給出了代碼用來(lái)判斷一個(gè)對(duì)象是否屬于類數(shù)組。此處應(yīng)當(dāng)為類數(shù)組表現(xiàn)之所以成為類數(shù)組,就是因?yàn)楹蛿?shù)組類似。偽數(shù)組轉(zhuǎn)化成數(shù)組非偽類對(duì)象,直接返回最好針對(duì)以前的實(shí)現(xiàn)參考的怪癖類數(shù)組對(duì)象 在線的《javascript權(quán)威指南》有對(duì)該概念的解釋。 那么,什么是javascript 類數(shù)組呢? 定義: 擁有l(wèi)ength屬性,length-0可...

    int64 評(píng)論0 收藏0
  • JavaScript學(xué)習(xí)總結(jié)(二)數(shù)組對(duì)象部分

    摘要:屬性是一個(gè)值或一組值以數(shù)組或?qū)ο蟮男问剑菍?duì)象的成員。可以使用內(nèi)置構(gòu)造函數(shù)和創(chuàng)建包裝對(duì)象。因此下面的代碼將會(huì)使人很迷惑結(jié)果結(jié)果,此數(shù)組長(zhǎng)度為應(yīng)該盡量避免使用數(shù)組構(gòu)造函數(shù)創(chuàng)建新數(shù)組。給數(shù)組對(duì)象添加返回?cái)?shù)組中最大元素值的方法。 對(duì)象部分 Object類型 Object 是一個(gè)無(wú)序的集合,可以存放任意類型對(duì)象,所有其他對(duì)象都繼承自這個(gè)對(duì)象。創(chuàng)建Object類型有兩種,一種是使用new運(yùn)算符,...

    Lsnsh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<