Une des caractéristiques de la "closure" est que le context n'est jamais inclue dans la closure !
id = "val";
$( '*' ).each( function () {
console.log( id );
}
this .id = "val";
$( '*' ).each( function () {
console.log( this .id );
}
this est en réalité lié à chaque élément de la boucle. LA correction sera de créer une copie qui est inclue dans la closure.
this.id = "val";
var outer = this;
$( '*' ).each( function () {
console.log( outer.id );