最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Array.prototype 的泛型應(yīng)用分析

 更新時(shí)間:2010年04月30日 15:11:57   作者:  
Array.prototype 的泛型應(yīng)用分析,需要的朋友可以參考下。
題目
請(qǐng)說(shuō)明下面語(yǔ)句的輸出:
復(fù)制代碼 代碼如下:

x = {shift:[].shift};
x.shift();
console.info(x.length);

如果你回答正確,那么說(shuō)明你已經(jīng)了解 Array 函數(shù)的泛型應(yīng)用。在理解這到題目之前,我 我們首先要了解數(shù)組(Array)的 shift 定義。

MDC 中已經(jīng)對(duì)相關(guān)的說(shuō)明描述得非常的清楚
復(fù)制代碼 代碼如下:

shift is intentionally generic; this method can be called or
applied to objects resembling arrays. Objects which do not
contain a length property reflecting the last in a series of
consecutive, zero-based numerical properties may not behave
in any meaningful manner.

同時(shí),EMCAScript 中的定義也同時(shí)定義了對(duì)于 shift 操作對(duì)于對(duì)象 length 屬性的改變, 那么基本上我們可以了解到上題中的答案為
復(fù)制代碼 代碼如下:
0

擴(kuò)散思維
如果對(duì)于上面的題目還無(wú)法理解,那么我們更清楚的說(shuō)明 Array.prototype.shift 對(duì)對(duì)象 的 length 的影響。
復(fù)制代碼 代碼如下:

x = {};
Array.prototype.shift.call(x);
console.info(x.length);

很明顯,對(duì)于對(duì)象如果為定義 length 屬性,則 shift 則會(huì)自動(dòng)加上 length 屬性并設(shè)置 為 0 。

既然已經(jīng)說(shuō)到這里,那么下面的題目輸出什么留給大家去思考。
復(fù)制代碼 代碼如下:

x = function (a, b, c) {};
Array.prototype.shift.call(x);
console.info(x.length);

重新認(rèn)識(shí)泛型
很明顯,上面的題目有可能還是無(wú)法說(shuō)明本篇文章的題目。泛型(Generic)應(yīng)用其實(shí) 期前也說(shuō)明過(guò),但這里主要說(shuō)明 Array 方法對(duì)于“類(lèi)數(shù)組”的操作使用。

強(qiáng)制轉(zhuǎn)換為數(shù)組
復(fù)制代碼 代碼如下:

var args = Array.prototype.slice.call(arguments);

這個(gè)用法比較火星,其實(shí)期前也用過(guò),詳細(xì)參見(jiàn)這里。

迭代數(shù)據(jù)
復(fù)制代碼 代碼如下:

Array.prototype.forEach.call(arguments, function(i) {
console.info(i);
});

如果對(duì)象能夠被遞歸,則出了“傳統(tǒng)”的 for、while 等語(yǔ)句以外,還可以考慮使用 Array 的 forEach 屬性(注意 IE 會(huì)是悲劇)。Array 的 forEach 方法詳見(jiàn)這里。

其他的 Array 擴(kuò)展用法可以散發(fā)自己的思維,如果對(duì)應(yīng)瀏覽器的 Array 沒(méi)有對(duì)應(yīng)的實(shí)現(xiàn)方 法,可以參見(jiàn)這里。

其實(shí),不僅僅是 Array 方法,很多瀏覽器原生對(duì)象的方法都是泛型,我們完全可以利用這 這些特性使代碼更為的清晰
使用原生方法,效率更高。

相關(guān)文章

  • js加入收藏以及使用Jquery更改透明度

    js加入收藏以及使用Jquery更改透明度

    本文為大家提供一段加入收藏的js代碼以及實(shí)用Jquery更改對(duì)象透明度的代碼,需要的朋友可以參考下
    2014-01-01
  • JS簡(jiǎn)單判斷滾動(dòng)條的滾動(dòng)方向?qū)崿F(xiàn)方法

    JS簡(jiǎn)單判斷滾動(dòng)條的滾動(dòng)方向?qū)崿F(xiàn)方法

    這篇文章主要介紹了JS簡(jiǎn)單判斷滾動(dòng)條的滾動(dòng)方向?qū)崿F(xiàn)方法,涉及javascript針對(duì)scrollTop事件的相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • 基于JS實(shí)現(xiàn)步驟引導(dǎo)進(jìn)度條效果的代碼示例

    基于JS實(shí)現(xiàn)步驟引導(dǎo)進(jìn)度條效果的代碼示例

    在Web前端開(kāi)發(fā)中,步驟引導(dǎo)進(jìn)度條是一種常見(jiàn)的交互設(shè)計(jì),用于引導(dǎo)用戶(hù)完成多步驟任務(wù),如表單填寫(xiě)、注冊(cè)流程或支付操作,本文將詳細(xì)介紹如何利用JavaScript實(shí)現(xiàn)一個(gè)功能完善且視覺(jué)友好的步驟引導(dǎo)進(jìn)度條效果,需要的朋友可以參考下
    2025-02-02
  • JS中map與forEach無(wú)法跳出循環(huán)及every和some的使用

    JS中map與forEach無(wú)法跳出循環(huán)及every和some的使用

    在我們平時(shí)使用習(xí)慣中,for循環(huán)里要跳出整個(gè)循環(huán)是使用break,但在數(shù)組中用forEach循環(huán)或者map如要退出整個(gè)循環(huán)使用break會(huì)報(bào)錯(cuò),使用return也不能跳出循環(huán),下面這篇文章主要介紹了關(guān)于JS中map與forEach無(wú)法跳出循環(huán)及every和some的使用的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • JS代碼實(shí)現(xiàn)電腦配置檢測(cè)功能

    JS代碼實(shí)現(xiàn)電腦配置檢測(cè)功能

    這篇文章主要介紹了JS代碼實(shí)現(xiàn)電腦配置檢測(cè)功能,需要的朋友可以參考下
    2018-03-03
  • 微信小程序中顯示倒計(jì)時(shí)代碼實(shí)例

    微信小程序中顯示倒計(jì)時(shí)代碼實(shí)例

    這篇文章主要介紹了微信小程序中顯示倒計(jì)時(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • JS使用post提交的兩種方式

    JS使用post提交的兩種方式

    這篇文章主要介紹了JS使用post提交的兩種方式,實(shí)例分析了兩種JavaScript使用post提交的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-12-12
  • 如何基于webRTC實(shí)現(xiàn)人臉識(shí)別功能

    如何基于webRTC實(shí)現(xiàn)人臉識(shí)別功能

    WebRTC技術(shù)包含了音視頻編解碼技術(shù)、傳輸技術(shù)、流媒體服務(wù)器技術(shù)等,涵蓋了音視頻處理和傳輸?shù)姆椒矫婷?下面這篇文章主要給大家介紹了關(guān)于如何基于webRTC實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • jquery單行文字向上滾動(dòng)效果的實(shí)現(xiàn)代碼

    jquery單行文字向上滾動(dòng)效果的實(shí)現(xiàn)代碼

    這篇文章主要介紹了jquery單行文字向上滾動(dòng)效果的具體實(shí)現(xiàn),此效果適應(yīng)于很多場(chǎng)景,會(huì)的不會(huì)的都要學(xué)習(xí)下啊
    2014-09-09
  • layer彈出層 iframe層去掉滾動(dòng)條的實(shí)例代碼

    layer彈出層 iframe層去掉滾動(dòng)條的實(shí)例代碼

    今天小編就為大家分享一篇layer彈出層 iframe層去掉滾動(dòng)條的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

乾安县| 子长县| 盐亭县| 广昌县| 阳谷县| 永丰县| 长宁县| 小金县| 麻江县| 沙洋县| 武宁县| 平定县| 崇信县| 沙湾县| 浪卡子县| 沧源| 中阳县| 霍城县| 丽江市| 雅安市| 鞍山市| 册亨县| 石城县| 汉中市| 赣州市| 泾川县| 阿拉善右旗| 信阳市| 陇南市| 陆河县| 湾仔区| 洞口县| 岐山县| 永济市| 南靖县| 广汉市| 新竹县| 四平市| 邹平县| 丹棱县| 元阳县|