我正在阅读 jQuery 的源代码。在 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的长度是自动增加的,为什么还要手动设置长度呢?
谢谢你。