jQuery vs Google Closure

Feb 07, 2014 14:18

jQuery:

function select(elem, f) {
    elem.toggleClass('tab-selected', f);
    $('#' + elem.data('link')).toggle(f);
}

$('.tab-button').each(function () {
    select($(this), $(this).hasClass('tab-selected'));
    $(this).click(function () {
        select($(this).closest('.tab-header').find('.tab-selected'), false);
        select($(this), true);
    });
});

Google Closure:

function select(elem, f) {
  goog.dom.classes.enable(elem, 'tab-selected', f);
  goog.style.showElement(goog.dom.getElement(goog.dom.dataset.get(elem, 'link')), f);
}

goog.array.forEach(goog.dom.getElementsByClass('tab-button'), function (cmdTab) {
  select(cmdTab, goog.dom.classes.has(cmdTab, 'tab-selected'));
  goog.events.listen(cmdTab, goog.events.EventType.CLICK, function () {
    goog.array.forEach(goog.dom.getElementsByClass('tab-selected'), function (cmdCurrTab) { select(cmdCurrTab, false); });
    select(cmdTab, true);
  });
});

Несмотря на то, что я категорически не согласен с известной явно проплаченной статьёй, где автор пытается двумя с половиной багами доказать, что Closure трогать не стоит, и jQuery так-то ещё то говно, но всё же не стоит.

UPD. Собсно, мне прояснили, что http://jsperf.com/google-closure-vs-jquery-dom/3
Previous post Next post
Up