1

違いを知りたい:

$('a').map(function(){return this})
$.map($('a'), function(){return this})

firebugコンソールでテストすると、動作が異なります。

4

2 に答える 2

4

簡単にテストしただけで、パフォーマンスは異なります。後者のコンテキストでの「this」は、ウィンドウオブジェクトを参照します。ただし、渡されたオブジェクト/配列をループするときに、現在の要素にアクセスできます。

$('a').map(function(){
    return this
});
$.map($('a'), function(el){
    return el;
});

後者は通常、jQuery以外のオブジェクトと配列に使用されますが、前者はこの目的に使用されます。

詳細については、ドキュメントを参照してください。

http://api.jquery.com/map/

http://api.jquery.com/jQuery.map/

于 2012-04-12T11:02:55.687 に答える
2

違いはなく、

$('a').map(function(){return this})

ラッパーです

$.map($('a'), function(){return this})

実際、これはjQueryのソースコードです

map: function( callback ) {
    return this.pushStack( jQuery.map(this, function( elem, i ) {
        return callback.call( elem, i, elem );
    }));
},

編集-もちろん(私はそれを当然のこととして与えました)コレクションをthis呼び出すときに現在の要素を.map()参照し、コレクションを反復処理するときにウィンドウオブジェクトを参照します$.map()

于 2012-04-12T10:34:09.417 に答える