Использование $(this)
вызывает как минимум две (и, возможно, более двух) функций и выделяет объект каждый раз, когда вы его используете (потребляя память, которая в конечном итоге должна быть восстановлена). Это все дополнительная работа, если вы просто собираетесь использовать одно и то же. Я бы рекомендовал вызывать его один раз, а затем кэшировать результат (например, внутри функции), а не иметь дюжину строк $(this).foo();
$(this).bar();
.
$
- это псевдоним для функции jQuery
, который выглядит следующим образом:
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
}
Как видите, он создает объект, вызывая функцию конструктора jQuery.fn.init
. Эта функция должна выяснить, что она делает, потому что jQuery использует функцию jQuery
для 18 различных вещей. Я не говорю, что это не делает это быстро, но зачем делать всю эту дополнительную работу. : -)
Редактировать : В случае, когда вы передаете в него элемент DOM (что обычно и делает $(this)
), jQuery.fn.init
не вызывает никаких дальнейших вызовов функций. Так что «просто» два плюс распределение.