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

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

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

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

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

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)來構造新數組,這樣是為了保證最大限度的兼容性。

相關文章

  • JavaScript計劃任務后臺運行的方法

    JavaScript計劃任務后臺運行的方法

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

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

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

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

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

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

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

    談談target=_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中的求值策略,對求值策略感興趣的同學,可以參考下
    2021-04-04
  • JS如何設置元素樣式的方法示例

    JS如何設置元素樣式的方法示例

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

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

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

最新評論