7

array.forEach() メソッドは長さプロパティを持つ配列のようなオブジェクトをループするためにも使用できるため、Jquery.each() と Array.prototype.forEach() メソッドの間に違いはありますか?私が見る唯一の違いは引数の配置です、他に何が違いますか?

 I found this:
 var obj = { one:1, two:2, three:3, four:4, five:5 };

jQuery.each(obj, function(i, val) {
  $("#" + i).append(document.createTextNode(" - " + val));
});

私が知りたいのは、jquery.each() は長さプロパティのないオブジェクトの関数を呼び出しますか??

4

2 に答える 2

5

クレイジートレインの答えに加えて:

私が知りたいのは、jquery.each() は長さプロパティのないオブジェクトの関数を呼び出しますか??

ソースを読む:

// args is for internal usage only
each: function( object, callback, args ) {
  var name, i = 0,
      length = object.length,
      isObj = length === undefined || jQuery.isFunction( object );

  if ( args ) {
    ...

  // A special, fast, case for the most common use of each
  } else {

    if ( isObj ) {
      for ( name in object ) {
      }
      ...
    }
  }
  return object;
},

したがって、長さプロパティがないか、値がundefinedであるかどうかを確認できます。jQuery はそれをプレーンなオブジェクトと見なし、継承されたプロパティに対する保護なしで列挙可能なプロパティに対して for..in ループを実行します。

于 2013-07-05T13:55:48.477 に答える