Показать сообщение отдельно
  #16 (permalink)  
Старый 11.11.2014, 18:04
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Ты можешь отличить, когда глобал засираетсмя неявно, и когда прогер сам объявляет переменные в глобале?
Могу. Ты как раз засираешь неявно.
Цитата:
Интересно было бы на твою версию взглянуть.
Легко. Но не для тебя.
Так на ES6:
class $ {
  constructor(selector) {
    if (!(this instanceof $))
      return new $(selector);

    Object.assign(this, document.querySelectorAll(selector));
  }

  addClass(className) {
    for (let element of Array.from(this)) {
      element.classList.add(className);
    }
    return this;
  }
}

Так на ES5:
function $(selector) {
  if (!(this instanceof $))
    return new $(selector);

  var queryResult = document.querySelectorAll(selector);
  for (var i = 0; i < queryResult.length; i++) {
    this[i] = queryResult[i];
  }
  this.length = queryResult.length;
}

$.prototype.addClass = function(className) {
  for (var i = 0; i < this.length; i++) {
    var element = this[i];
    if (~element.className.indexOf(className))
      continue;
    else
      element.className += (" " + className);
  }
  return this;
}

Последний раз редактировалось Erolast, 11.11.2014 в 18:40.
Ответить с цитированием