欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2010年03月17日 19:53:19   作者:  
arguments在JavaScript語法中是函數(shù)特有的一個對象屬性(Arguments對象),用來引用調(diào)用該函數(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ù)組,擁有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"錯誤,因為arguments不是一個真正的數(shù)組。而以上代碼調(diào)用Array.prototype.slice.apply(arguments)的意義就在于它能將函數(shù)的參數(shù)對象轉(zhuǎn)化為一個真正的數(shù)組。JavaScript腳本引擎如何實現(xiàn)我們不得而知,但這種方式確實是有效的,而且在主流瀏覽器上都測試通過。另一方面也可推知Arguments對象和Array對象的親緣關(guān)系。如果你在編寫JavaScript的時候,常常碰到需要將arguments對象轉(zhuǎn)成Array來處理的情形,這個技巧可以幫上忙?!?
  這個技巧來自鼎鼎大名的DouglasCrockford。推而廣之,Array其他的原型方法也可以應(yīng)用在arguments上,比如: 
var arg0 = Array.prototype.shift.apply(arguments);
  shift也是Array的一個實例方法,用于獲取并返回數(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ù)組,我們看它的實現(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)文章

  • JavaScript計劃任務(wù)后臺運行的方法

    JavaScript計劃任務(wù)后臺運行的方法

    這篇文章主要介紹了JavaScript計劃任務(wù)后臺運行的方法,需要的朋友可以參考下
    2015-12-12
  • uni-app低成本封裝一個取色器組件的簡單方法

    uni-app低成本封裝一個取色器組件的簡單方法

    最近想實現(xiàn)一個uniapp取色器組件,實現(xiàn)后發(fā)現(xiàn)效果還不錯,下面這篇文章主要給大家介紹了關(guān)于uni-app低成本封裝一個取色器組件的相關(guān)資料,文中通過圖文介紹的介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 微信小程序在text文本實現(xiàn)多種字體樣式

    微信小程序在text文本實現(xiàn)多種字體樣式

    這篇文章主要介紹了微信小程序在text文本實現(xiàn)多種字體樣式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 把input初始值不寫value的具體實現(xiàn)方法

    把input初始值不寫value的具體實現(xiàn)方法

    比如制作一個最常見的,input初始值,一般以前,我都只是寫在input的value里,要把初始值單獨寫出來,于是我比較傻逼,就用<span>標(biāo)簽寫,定位在input上,讓它單擊和input獲焦上都消失
    2013-07-07
  • 談?wù)則arget=_new和_blank的不同之處

    談?wù)則arget=_new和_blank的不同之處

    這篇文章主要介紹了target="_new"和"_blank"的區(qū)別實例詳解,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • javascript html5輕松實現(xiàn)拖動功能

    javascript html5輕松實現(xiàn)拖動功能

    這篇文章主要為大家詳細介紹了javascript html5輕松實現(xiàn)拖動功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • jQuery Mobile動態(tài)刷新頁面樣式的實現(xiàn)方法

    jQuery Mobile動態(tài)刷新頁面樣式的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨Query Mobile動態(tài)刷新頁面樣式的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 詳細討論JavaScript中的求值策略

    詳細討論JavaScript中的求值策略

    這篇文章主要介紹了詳細討論JavaScript中的求值策略,對求值策略感興趣的同學(xué),可以參考下
    2021-04-04
  • JS如何設(shè)置元素樣式的方法示例

    JS如何設(shè)置元素樣式的方法示例

    本篇文章主要介紹了JS如何設(shè)置元素樣式的方法示例,主要介紹了三種方法,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • 如何解決IONIC頁面底部被遮住無法向上滾動問題

    如何解決IONIC頁面底部被遮住無法向上滾動問題

    Ionic 是目前最有潛力的一款 HTML5 手機應(yīng)用開發(fā)框架。在開發(fā)過程中我們同樣會遇到各種各樣奇葩的問題。下面小編給大家?guī)砹擞嘘P(guān)IONIC頁面底部被遮住無法向上滾動問題的解決方案
    2016-09-09

最新評論