|
Accepts an array-like collection (anything with numeric indices) and returns its equivalent as an actual Array object. This method is a convenience alias of Array.from, but is the preferred way of casting to an Array.
復(fù)制代碼 代碼如下:
function $A(iterable) {
if (!iterable) return [];
if ('toArray' in Object(iterable)) return iterable.toArray();
var length = iterable.length || 0, results = new Array(length);
while (length--) results[length] = iterable[length];
return results;
}
如果傳進(jìn)來的參數(shù)為null, undefined and false 則直接返回空數(shù)組
如果傳進(jìn)來的參數(shù)對(duì)象里有toArray方法,這直接調(diào)用參數(shù)的toArray方法,因?yàn)橛性S多Prototype對(duì)象里面已經(jīng)定義好了toArray方法,所以可以直接調(diào)用toArray方法
例如:
復(fù)制代碼 代碼如下:
var array={
toArray : function(){
return [1,2,3];
}
}
//1,2,3
alert($A(array));
接下來根據(jù)參數(shù)的length建立新數(shù)組,然后逐個(gè)把參數(shù)中的元素復(fù)制到新數(shù)組中去,最后返回新數(shù)組對(duì)象
下面給出prototype幫助文檔的一段說明和例子也許更能說明這個(gè)函數(shù)的作用:
復(fù)制代碼 代碼如下:
/*The well-known DOM method document.getElementsByTagName() doesn't return an Array, but a NodeList object that implements the basic array "interface." InterNET Explorer does not allow us to extend Enumerable onto NodeList.prototype, so instead we cast the returned NodeList to an Array:*/
var paras = $A(document.getElementsByTagName('p'));
paras.each(Element.hide);
$(paras.last()).show();
還有一點(diǎn):
Array.from = $A;
數(shù)組對(duì)象的from靜態(tài)方法和$A是一個(gè)方法
JavaScript技術(shù):Prototype 學(xué)習(xí) 工具函數(shù)學(xué)習(xí)($A方法),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。