Есть ли дополнительные $(...) звонки плохо?

Если у меня есть код, который вытаскивает объект jQuery, а затем выполняет некоторые дополнительные вызовы

$("a.postSyncLink").click(function () {
    var resultsTarget = $("span", $(link).parent().next());
    resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        resultsTarget.text(returnVal);
    });
});

Является ли это вредной практикой впоследствии (и излишне) переносить этот объект в функцию jQuery? Может ли jQuery оптимизировать лишние вызовы, подобные этому?

$("a.postSyncLink").click(function () {
    var resultsTarget = $("span", $(link).parent().next());
    $(resultsTarget).html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        $(resultsTarget).text(returnVal);
    });
});

Ответ 1

Если они не используются для клонирования исходного объекта jQuery, то да, это плохо:

http://api.jquery.com/jQuery/#cloning-jquery-objects

Объект jQuery, переданный в jQuery, клонируется, это процессорное время, которое я бы не терял.

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

$("a.postSyncLink").click(function () {
    var $resultsTarget = $("span", $(link).parent().next());
    $resultsTarget.html("<img style='position: absolute;' src='" + waitImgUrl + "'/><span>Sync in progress</span>");

    $.get($(this).attr("data-url"), function (returnVal) {
        $resultsTarget.text(returnVal);
    });
});

Ответ 2

Это вредит производительности, так как вы создаете новые объекты jquery каждый раз, когда вы это делаете.

Избегайте, когда это возможно.

Просто создайте объект jquery и используйте его.