2010-08-18 28 views
0

只是想知道有什麼副作用或這是什麼意思或做什麼。我注意到Prototype JS庫的兩部分源代碼。

Hash.from = $H; 

Array.from = $A; 

任何澄清將不勝感激,並提前謝謝。

回答

0

從文檔

Array.from克隆現有陣列或 創建從陣列狀 採集一個新的。這是 $ A()方法的別名。

$ A()是Array.from的簡便別名,但是是轉換爲數組的首選方式。

這就是你發佈的行中發生的事情。命名的函數$ A被分配給Array.from。所以調用Array.from(iterable)與調用$ A(iterable)相同。與哈希相同。

1

沒有更多的上下文很難給出有用的答案。

Hash.from = $ H;

將變量$H的值賦值給對象Hash的屬性from。這是所有用戶定義的東西。

Array.from = $ A;

將變量$A的值賦值給對象Array的屬性from。除Array外,這是用戶定義的,Array是數組的內置構造函數。

修改內置構造函數的副作用是兩組修改相互衝突的可能性。例如,如果prototype.js給出Array一個from屬性,然後myCoolLibrary.js也給出Array一個from屬性,可能使用不同的API,一個庫或另一個庫將被破壞。