this
- это объект jQuery, для которого была вызвана ваша функция;$(this)
- это поверхностная копия объекта (еще один объект jQuery, ссылающийся на те же элементы DOM или любые объекты, которые содержались в оригинале).Как правило, this
должно быть лучше, потому что 1) создание копии объекта jQuery занимает нетривиальное количество операций, 2) вы обычно не меняете свойства объекта jQuery.
Теперь, если вы do измените свойства, тогда они будут вести себя по-разному:
var foo = $('#id');
var bar = $(foo);
foo.baz = 1;
bar.baz; // undefined
, и в этом случае возврат $(this)
может иметь больше смысла.Например, собственная функция jQuery add
выполняет что-то подобное внутри:
var next = $(this);
// add parameter to next
return next;
, поэтому при добавлении элемента в объект jQuery он не изменяет оригинал:
var foo = $('html');
var bar = foo.add('body');
bar.length; // 2
foo.length; // 1