0

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;
}

理解できないことが2つあります。

  1. second.length のタイプをチェックしたのに、first.length のタイプをチェックしなかったのはなぜですか?
  2. Array の長さは自動的に増加するのに、なぜ手動で長さを設定する必要があるのでしょうか?

ありがとうございました。

4

1 に答える 1

0

Javascript には連想配列がなく、サポートされていません。しかし... Javascript のすべての配列はオブジェクトであり、Javascript のオブジェクト構文は連想配列の基本的なエミュレーションを提供します。

したがって、実行する場合:

 x = [];
 x['a'] = 1;
 x['b'] = 2;
 alert(x.length); //alerts 0;

したがって、期待する長さを取得できるように長さを設定します

于 2013-05-09T05:50:40.343 に答える