Любая причина не использовать $ (test) .stuff (); vs test.stuff (); учитывая, что тест = $ ('что-то') ;? - PullRequest
11 голосов
/ 30 июля 2011

Google не помогает мне понять это.Есть ли причина не делать следующее:

var test = $('something');
$(test).stuff();

Вместо того, чтобы делать это следующим образом:

var test = $('something');
test.stuff();

По сути, я считаю, что код гораздо легче читать, когда он находится в jQueryФормат селектора, даже если это не обязательно.

Оба метода работают одинаково.

Спасибо!

Ответы [ 5 ]

12 голосов
/ 30 июля 2011

Первый может быть значительно медленнее, в зависимости от размера объекта. Если вы используете его только пару раз, это не будет иметь большого значения, но если вы используете его часто, возможно, вы могли бы использовать эту популярную схему именования:

Если переменная содержит объект jQuery, добавьте к имени переменной $. Назовите все остальное как обычно, и не называйте никакие переменные, которые не содержат объекты jQuery, с помощью $. Так что вы бы написали:

var $test = $('something');
$test.stuff();

Что дает понять, что test - это объект jQuery, если вы следовали тому же соглашению об именах.

7 голосов
/ 30 июля 2011

Это из JQuery Docs:

Cloning jQuery Objects

When a jQuery object is passed to the $() function, a clone of the object is created. This new jQuery object references the same DOM elements as the initial one.

Таким образом, разница в том, что jQuery делает клон объекта jQuery, передаваемого в функцию $ () (которая создает небольшое количество дополнительных издержек).

Ссылка: http://api.jquery.com/jQuery/

5 голосов
/ 30 июля 2011

test.stuff() быстрее.

Вот несколько сравнительных данных: http://jsperf.com/selector-variation-test

4 голосов
/ 30 июля 2011

Вы получите удар по производительности без веской причины, сделав это первым способом.Причина этого заключается в том, что вы «повторно запрашиваете» его.Я рекомендую написать так: var $test = $('something');. Очень ясно, что переменная является объектом jQuery, когда вы делаете это.

1 голос
/ 30 июля 2011

Я не верю, что первый метод верен, я думаю, что после того, как вы объявили переменную, это просто имя.Если вам нужен подобный синтаксис, вы можете объявить переменную как $test и все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...