|
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.
復制代碼 代碼如下:
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;
}
如果傳進來的參數為null, undefined and false 則直接返回空數組
如果傳進來的參數對象里有toArray方法,這直接調用參數的toArray方法,因為有許多Prototype對象里面已經定義好了toArray方法,所以可以直接調用toArray方法
例如:
復制代碼 代碼如下:
var array={
toArray : function(){
return [1,2,3];
}
}
//1,2,3
alert($A(array));
接下來根據參數的length建立新數組,然后逐個把參數中的元素復制到新數組中去,最后返回新數組對象
下面給出prototype幫助文檔的一段說明和例子也許更能說明這個函數的作用:
復制代碼 代碼如下:
/*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();
還有一點:
Array.from = $A;
數組對象的from靜態方法和$A是一個方法
JavaScript技術:Prototype 學習 工具函數學習($A方法),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。