成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

類(lèi)數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組對(duì)象的簡(jiǎn)單理解

wayneli / 1685人閱讀

摘要:將對(duì)象轉(zhuǎn)換為數(shù)組對(duì)象的限制不知道現(xiàn)在還是否需要考慮這一點(diǎn)之前的版本將實(shí)現(xiàn)為對(duì)象而非對(duì)象,對(duì)象不能直接調(diào)用方法,因此需要采取其他方式轉(zhuǎn)化。

關(guān)于類(lèi)數(shù)組對(duì)象

JavaScript中有一些著名的類(lèi)數(shù)組對(duì)象,它們看起來(lái)很像數(shù)組:

擁有l(wèi)ength屬性

元素按序保存在對(duì)象中,可以通過(guò)索引訪(fǎng)問(wèn)

但實(shí)際和數(shù)組又不是一回事:

沒(méi)有數(shù)組的很多方法

也會(huì)有數(shù)組沒(méi)有的方法
(e.g. NodeList的item()方法)

有些類(lèi)數(shù)組對(duì)象是動(dòng)態(tài)變化的
(e.g. NodeList的值是基于DOM結(jié)構(gòu)動(dòng)態(tài)執(zhí)行查詢(xún)的結(jié)果)

……

將類(lèi)數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組對(duì)象
Array.prototype.slice.call(arraylike, 0);

這是一個(gè)遍地開(kāi)花的方法,這里主要是想簡(jiǎn)單理解一下實(shí)現(xiàn)原理。

Array的通用方法

Array對(duì)象的很多方法都是通用方法,意思是其它非數(shù)組對(duì)象也可以直接借來(lái)使用,因?yàn)樗鼈冊(cè)谠O(shè)計(jì)時(shí)沒(méi)有要求使用方法的對(duì)象必須是數(shù)組。

Array.prototype.slice()就是這樣一個(gè)方法,只要對(duì)象有l(wèi)ength屬性并可以通過(guò)索引訪(fǎng)問(wèn),就可以使用該方法。

當(dāng)僅傳入一個(gè)參數(shù),且傳入?yún)?shù)為空或0時(shí),從索引為0的元素開(kāi)始復(fù)制,直到最后一個(gè)元素,結(jié)果被保存在一個(gè)數(shù)組中返回。

Function.call()方法

這個(gè)方法使得你可以在一個(gè)對(duì)象上借用另一個(gè)對(duì)象的方法。

第一個(gè)參數(shù)即為實(shí)際調(diào)用方法的對(duì)象,其后的參數(shù)為依次傳入方法的參數(shù)。

將NodeList對(duì)象轉(zhuǎn)換為數(shù)組對(duì)象的限制

不知道現(xiàn)在還是否需要考慮這一點(diǎn)?

IE8之前的版本將NodeList實(shí)現(xiàn)為COM對(duì)象而非DOM對(duì)象,COM對(duì)象不能直接調(diào)用js方法,因此需要采取其他方式轉(zhuǎn)化。

/* JavaScript高級(jí)程序設(shè)計(jì)-第十章 P250 */
function convertToArray(nodes) {
    var array = null;
    try {
        array = Array.prototype.slice.call(nodes, 0);
    } catch(ex) {
        array = new Array();
        for(var i=0; i           
               
                                           
                       
                 

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/79825.html

相關(guān)文章

  • 夯實(shí)基礎(chǔ)-數(shù)據(jù)類(lèi)型與繼承

    摘要:通過(guò)上面的圖我想應(yīng)該一目了然了,基本數(shù)據(jù)類(lèi)型都是存在棧內(nèi)存中的,復(fù)雜對(duì)象則是存在堆內(nèi)存中,棧內(nèi)存變量保存的是其內(nèi)存地址。等同于如果使用則規(guī)則相對(duì)簡(jiǎn)單值為基本數(shù)據(jù)類(lèi)型數(shù)值轉(zhuǎn)為相應(yīng)的字符串。 數(shù)據(jù)類(lèi)型是基礎(chǔ)中的基礎(chǔ),大家天天遇到,我們這次來(lái)討論深一點(diǎn),將我們認(rèn)為理所當(dāng)然的事情背后的原理發(fā)掘;繼承也是前端基礎(chǔ)一個(gè)大考點(diǎn),看看繼承的原理與使用場(chǎng)景。 本文討論以下幾個(gè)點(diǎn): JavaScript...

    codecraft 評(píng)論0 收藏0
  • JavaScript 工作原理之十五-類(lèi)和繼承及 Babel 和 TypeScript 代碼轉(zhuǎn)換探秘

    摘要:使用新的易用的類(lèi)定義,歸根結(jié)底也是要?jiǎng)?chuàng)建構(gòu)造函數(shù)和修改原型。首先,它把構(gòu)造函數(shù)當(dāng)成單獨(dú)的函數(shù)且包含類(lèi)屬性集。該節(jié)點(diǎn)還儲(chǔ)存了指向父類(lèi)的指針引用,該父類(lèi)也并儲(chǔ)存了構(gòu)造函數(shù),屬性集和及父類(lèi)引用,依次類(lèi)推。 原文請(qǐng)查閱這里,略有刪減,本文采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議共享,BY Troland。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 這是 JavaScript 工作原理的第...

    GeekGhc 評(píng)論0 收藏0
  • JavaScript 工作原理之十五-類(lèi)和繼承及 Babel 和 TypeScript 代碼轉(zhuǎn)換探秘

    摘要:使用新的易用的類(lèi)定義,歸根結(jié)底也是要?jiǎng)?chuàng)建構(gòu)造函數(shù)和修改原型。首先,它把構(gòu)造函數(shù)當(dāng)成單獨(dú)的函數(shù)且包含類(lèi)屬性集。該節(jié)點(diǎn)還儲(chǔ)存了指向父類(lèi)的指針引用,該父類(lèi)也并儲(chǔ)存了構(gòu)造函數(shù),屬性集和及父類(lèi)引用,依次類(lèi)推。 原文請(qǐng)查閱這里,略有刪減,本文采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議共享,BY Troland。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 這是 JavaScript 工作原理的第...

    BigNerdCoding 評(píng)論0 收藏0
  • 通俗方式理解動(dòng)態(tài)類(lèi)型,靜態(tài)類(lèi)型;強(qiáng)類(lèi)型,弱類(lèi)

    摘要:不允許隱式轉(zhuǎn)換的是強(qiáng)類(lèi)型,允許隱式轉(zhuǎn)換的是弱類(lèi)型。拿一段代碼舉例在使用調(diào)用函數(shù)的時(shí)候會(huì)先生成一個(gè)類(lèi)模板運(yùn)行時(shí)生成,執(zhí)行的時(shí)候會(huì)生成類(lèi)模板,執(zhí)行的時(shí)候會(huì)生成類(lèi)模板。 0 x 01 引言 今天和一個(gè)朋友討論 C++ 是強(qiáng)類(lèi)型還是弱類(lèi)型的時(shí)候,他告訴我 C++ 是強(qiáng)類(lèi)型的,他和我說(shuō)因?yàn)?C++ 在寫(xiě)的時(shí)候需要 int,float 等等關(guān)鍵字去定義變量,因此 C++ 是強(qiáng)類(lèi)型的,我告訴他 C+...

    周?chē)?guó)輝 評(píng)論0 收藏0
  • 《深入理解ES6》筆記—— 改進(jìn)數(shù)組功能(10)

    摘要:創(chuàng)建數(shù)組中創(chuàng)建數(shù)組的方式數(shù)組字面量一個(gè)數(shù)組。傳入一個(gè)回調(diào)函數(shù),找到數(shù)組中符合當(dāng)前搜索規(guī)則的第一個(gè)元素,返回它,并且終止搜索。用新元素替換掉數(shù)組內(nèi)的元素,可以指定替換下標(biāo)范圍。 ES5提供的數(shù)組已經(jīng)很強(qiáng)大,但是ES6中繼續(xù)改進(jìn)了一些,主要是增加了新的數(shù)組方法,所以這章的知識(shí)非常少。 創(chuàng)建數(shù)組 ES5中創(chuàng)建數(shù)組的方式:數(shù)組字面量、new一個(gè)數(shù)組。 const arr1 = [] //數(shù)組字...

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

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

0條評(píng)論

閱讀需要支付1元查看
<