私はとの違いを知りたい:jQuery.mapで「この」キーワード()
$('a').map(function(){return this})
$.map($('a'), function(){return this})
私はfirebug
コンソールでそれらをテストするとき、彼らは動作が異なります。
私はとの違いを知りたい:jQuery.mapで「この」キーワード()
$('a').map(function(){return this})
$.map($('a'), function(){return this})
私はfirebug
コンソールでそれらをテストするとき、彼らは動作が異なります。
でコレクションを反復処理するとき、彼らは異なって実行するのですwindowオブジェクトを指しながら。後者の文脈における 'これ'はウィンドウオブジェクトを参照する。しかし、あなたは、渡されたオブジェクト/配列をループするときに、現在の要素のアクセス権を持っています:前者は、この目的のためのものであるのに対し、
$('a').map(function(){
return this
});
$.map($('a'), function(el){
return el;
});
を後者は、典型的には、非jQueryのオブジェクトと配列のために使用されます。
は、より多くの情報のためのドキュメントを参照してください:そこには違いはありません、私は
$('a').map(function(){return this})
が、これはjQueryのソースコード
map: function(callback) {
return this.pushStack(jQuery.map(this, function(elem, i) {
return callback.call(elem, i, elem);
}));
},
EDITで実際に
$.map($('a'), function(){return this})
のラッパーであることを考える - もちろん(私はそれを与えました)this
は、.map()
コレクションにそれはあなただけで簡単にテストした$.map()
どのように彼らは異なる動作をしていますか? – Brandan