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

Array.prototype.slice.apply的使用方法

 更新時間:2010年03月17日 19:53:19   作者:  
arguments在JavaScript語法中是函數(shù)特有的一個對象屬性(Arguments對象),用來引用調(diào)用該函數(shù)時傳遞的實(shí)際參數(shù)。
復(fù)制代碼 代碼如下:

function test(){ 
 //將參數(shù)轉(zhuǎn)為一個數(shù)組 
  var args = Array.prototype.slice.apply(arguments); 
 alert(args); 
}

arguments在JavaScript語法中是函數(shù)特有的一個對象屬性(Arguments對象),用來引用調(diào)用該函數(shù)時傳遞的實(shí)際參數(shù)。這個對象很象數(shù)組,擁有l(wèi)ength屬性且使用下標(biāo)的形式來獲取其元素,但它又并非真正的Array對象。更多關(guān)于Arguments對象的資料請參閱《JavaScript權(quán)威指南》。
  所以,直接調(diào)用arguments.slice()將返回一個"Object doesn't support this property or method"錯誤,因?yàn)閍rguments不是一個真正的數(shù)組。而以上代碼調(diào)用Array.prototype.slice.apply(arguments)的意義就在于它能將函數(shù)的參數(shù)對象轉(zhuǎn)化為一個真正的數(shù)組。JavaScript腳本引擎如何實(shí)現(xiàn)我們不得而知,但這種方式確實(shí)是有效的,而且在主流瀏覽器上都測試通過。另一方面也可推知Arguments對象和Array對象的親緣關(guān)系。如果你在編寫JavaScript的時候,常常碰到需要將arguments對象轉(zhuǎn)成Array來處理的情形,這個技巧可以幫上忙?!?
  這個技巧來自鼎鼎大名的DouglasCrockford。推而廣之,Array其他的原型方法也可以應(yīng)用在arguments上,比如: 
var arg0 = Array.prototype.shift.apply(arguments);
  shift也是Array的一個實(shí)例方法,用于獲取并返回數(shù)組的第一個元素。當(dāng)然如上的調(diào)用雖然可執(zhí)行,但卻純屬多余,不如直接調(diào)用arguments[0]來的簡單直接。再推而廣之,我們也可以對很多形似Array的Collection對象應(yīng)用這個技巧,比如Array.prototype.slice.apply(document.getElementsByTagName('div')); 不過很遺憾,IE并不支持這樣的調(diào)用,F(xiàn)irefox和Opera則都能得到正確的結(jié)果?!?
  Prototype1.4中增加的$A()方法也常用來將arguments轉(zhuǎn)為數(shù)組,我們看它的實(shí)現(xiàn): 
復(fù)制代碼 代碼如下:

var $A = Array.from = function(iterable) { 
 if(!iterable) return[]; 
  if(iterable.toArray) { 
  returniterable.toArray(); 
 } else { 
  varresults = []; 
  for(vari=0; i<iterable.length; i++) 
  results.push(iterable[i]); 
  returnresults; 
 } 
}

Prototype用一個for循環(huán)來構(gòu)造新數(shù)組,這樣是為了保證最大限度的兼容性。

相關(guān)文章

  • php,js,css字符串截取的辦法集錦

    php,js,css字符串截取的辦法集錦

    這篇文章主要介紹了php,js,css字符串截取的辦法,其實(shí)沒有什么技術(shù)含量,就是記錄一下,方便自己復(fù)習(xí)鞏固,希望對大家能有所幫助
    2014-09-09
  • JavaScript雙向鏈表實(shí)現(xiàn)LRU緩存算法的示例代碼

    JavaScript雙向鏈表實(shí)現(xiàn)LRU緩存算法的示例代碼

    本文主要介紹了JavaScript雙向鏈表實(shí)現(xiàn)LRU緩存算法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JavaScript限定范圍拖拽及自定義滾動條應(yīng)用(3)

    JavaScript限定范圍拖拽及自定義滾動條應(yīng)用(3)

    這篇文章主要介紹了JavaScript限定范圍拖拽及自定義滾動條應(yīng)用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JavaScript數(shù)組類型Array相關(guān)的屬性與方法詳解

    JavaScript數(shù)組類型Array相關(guān)的屬性與方法詳解

    這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組類型Array相關(guān)的屬性與方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • JavaScript 回車 焦點(diǎn)切換

    JavaScript 回車 焦點(diǎn)切換

    回車鍵按下時,自動以Tab鍵方式在文本輸入框之間進(jìn)行焦點(diǎn)切換的JavaScript代碼
    2009-06-06
  • 微信小程序頂部可滾動導(dǎo)航效果

    微信小程序頂部可滾動導(dǎo)航效果

    最近領(lǐng)導(dǎo)安排做一個小程序之做頭部做導(dǎo)航分類效果,下面小編給大家分享實(shí)現(xiàn)代碼,需要的朋友參考下吧
    2017-10-10
  • JavaScript簡單實(shí)現(xiàn)合并兩個Json對象的方法示例

    JavaScript簡單實(shí)現(xiàn)合并兩個Json對象的方法示例

    這篇文章主要介紹了JavaScript簡單實(shí)現(xiàn)合并兩個Json對象的方法,結(jié)合實(shí)例形式分析了json對象的遍歷、添加實(shí)現(xiàn)合并的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • JavaScript第七種數(shù)據(jù)類型Symbol的用法詳解

    JavaScript第七種數(shù)據(jù)類型Symbol的用法詳解

    Symbol是ES6中引入的一種新的基本數(shù)據(jù)類型,用于表示一個獨(dú)一無二的值。它是JavaScript中的第七種數(shù)據(jù)類型。本文將詳細(xì)講講Symbol的使用,需要的可以參考一下
    2022-09-09
  • JavaScript中this機(jī)制是如何真正工作的

    JavaScript中this機(jī)制是如何真正工作的

    JavaScript中this機(jī)制提供了更優(yōu)雅的方式來隱含地“傳遞”一個對象引用,導(dǎo)致更加干凈的API設(shè)計(jì)和更容易的復(fù)用,this既不是函數(shù)自身的引用,也不是函數(shù)詞法作用域的引用,this實(shí)際上是在函數(shù)被調(diào)用時建立的一個綁定,它指向什么是完全由函數(shù)被調(diào)用的調(diào)用點(diǎn)來決定的
    2023-11-11
  • js實(shí)現(xiàn)瀑布流效果(自動生成新的內(nèi)容)

    js實(shí)現(xiàn)瀑布流效果(自動生成新的內(nèi)容)

    本文主要介紹了js實(shí)現(xiàn)瀑布流效果:當(dāng)滾動條接近底部會自動生成新的內(nèi)容。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03

最新評論

墨玉县| 交城县| 呼图壁县| 高陵县| 新河县| 广灵县| 石泉县| 永登县| 永昌县| 齐河县| 金溪县| 乐都县| 昆明市| 宁陵县| 辽源市| 宝鸡市| 桐城市| 鲁甸县| 东台市| 左云县| 义马市| 呼伦贝尔市| 井研县| 池州市| 个旧市| 台湾省| 郸城县| 汽车| 淮阳县| 锦屏县| 洛阳市| 西盟| 河池市| 五常市| 浙江省| 西峡县| 伊川县| 禹城市| 新昌县| 阿鲁科尔沁旗| 皋兰县|