Вы рассматриваете возможность использования локальной переменной для кэширования значения потенциально медленного поиска.
Насколько медленным является сам вызов? Если это быстро, кэширование не будет иметь большого значенияразница.Если он медленный, то кешируем при первом звонке.Селекторы значительно различаются по своей стоимости - просто подумайте о том, как код должен штрафовать элемент.Если это идентификатор, то браузер обеспечивает быстрый доступ, тогда как классы и узлы требуют полного сканирования DOM.Проверьте профилирование селекторов jQuery (Sizzle) , чтобы понять их.
Можете ли вы объединить вызовы в цепочку? Рассмотрите возможность вызова методов "цепочки", где это возможно.Это обеспечивает эффективность без введения другой переменной.
Для вашего примера я бы написал:
$('#elemId').addClass('someClass').set('some attribute', 'some value');
Как код читает? Обычно, если используется тот же методбудет вызываться несколько раз, яснее высушить его и использовать локальную переменную.Затем читатель понимает намерение лучше - вы не заставляете их сканировать все вызовы jQuery, чтобы убедиться, что они одинаковы.Кстати, довольно стандартным соглашением является именование переменных jQuery, начинающихся с $ - что допустимо в Javascript - как в
var $elem = $('#elem');
$elem.addClass('someClass');
Надеюсь, это поможет.