this
es el objeto jQuery en el que se ha invocado su función; $(this)
es una copia superficial del objeto (otro objeto jQuery, que hace referencia a los mismos elementos DOM o cualquier objeto que tenga el original). Normalmente, this
debería ser mejor porque 1) crear una copia del objeto jQuery requiere una cantidad no trivial de operaciones, 2) generalmente no se cambian las propiedades del objeto jQuery.
Ahora bien, si haces propiedades de cambio de entonces los dos se comportan de manera diferente:
var foo = $('#id');
var bar = $(foo);
foo.baz = 1;
bar.baz; // undefined
y en ese caso volver $(this)
podría tener más sentido. Por ejemplo, la propia función de jQuery add
hace algo como esto internamente:
var next = $(this);
// add parameter to next
return next;
por lo que cuando se agrega un elemento a un objeto jQuery, que no modifica el original:
var foo = $('html');
var bar = foo.add('body');
bar.length; // 2
foo.length; // 1
Sí, eso era lo que pensamiento también Gracias por confirmar. – pimvdb