Показать сообщение отдельно
  #2 (permalink)  
Старый 22.05.2016, 21:47
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

shokoMoko,
Так и есть - потому что в this.GetClass класса gtClassButtons записывается не выражение а результат выполнения в нашем случае - document.getElementsByClassName(null), потому что Вы сначала выполняете this.GetClass = document.getElementsByClassName(this.arg) в то время когда this.arg = null, а потом задаете для this.arg = cls; и больше ничего не делаете.
Это тоже самое если бы вы делали так
var a = 3;
var b = 2 + a;
a = 5; // И после переопределения переменной а ожидаете что b будет равно не 5, а 7;

А для того что бы получить желаемый результат надо переопределить свойство this.GetClass
function gtClassButtons(cls){

gtClassName.call(this);
this.arg = cls;
this.GetClass = document.getElementsByClassName(this.arg);
}
Ответить с цитированием