0
我讀的jQuery的源代碼。在jQuery.merge爲什麼jQuery.merge設置手動返回值的長度?
的功能merge: function(first, second) {
var i = first.length,
j = 0;
if (typeof second.length === "number") {
for (var l = second.length; j < l; j++) {
first[ i++ ] = second[ j ];
}
} else {
while (second[j] !== undefined) {
first[ i++ ] = second[ j++ ];
}
}
first.length = i;
return first;
}
有兩件事情我不明白:
- 爲什麼檢查second.length的類型,但不檢查first.length的類型?
- 由於Array的長度自動增加,爲什麼我們需要手動設置長度?
謝謝。
我試圖合併數組的關聯數組,但結果長度等於Array的長度。此外,我不認爲Merge可以處理關聯數組,因爲還有另一個函數「extend」被設計用來完成這項工作。 – liuyl 2013-05-09 06:43:30