Показать сообщение отдельно
  #1 (permalink)  
Старый 06.06.2015, 02:43
Аватар для Аленький цветочек
Интересующийся
Отправить личное сообщение для Аленький цветочек Посмотреть профиль Найти все сообщения от Аленький цветочек
 
Регистрация: 29.11.2012
Сообщений: 15

Классы js. Как обратиться к свойству класса из обработчика события клик
Здравствуйте. Я недавно начала изучать js и столкнулась с такой проблемой: создаю 2 объекта а0 и а1 класса А(). Запуская для каждого метод aMethod.genDiv, он создает 2 кнопки и на каждую вешает событие клика. Обработчик aClick увеличивает aMethod.genDiv.something.some1 на 1.
function A() {
    this.aMethod = {
        something: {
            some1: 1,
            some2: 2
        },
        genDiv: function(num){
            var wrapper = document.getElementById('wrapper');
            var a = document.createElement('input');
            a.id = 'a' + num;
            a.type = 'button';
            a.value = a.id;
            a.addEventListener('click', this.aClick);
            wrapper.appendChild(a);

        },
        aClick:function(){
            console.log(this.something.some1); // выдает undefinde , думаю,
                                                               //тк в обработчике this  это
                                                               // сам инпут, а не 
                                                              //nameObj.aMethod.something.some1
            this.something.some1++;
            
        }
    }
}
window.onload = function () {
    var objName;
    for(var i = 0; i < 2; i++){
        objName = 'a' + i;
        objName = new A();
        objName.aMethod.genDiv(i);
    }
}

Вопрос: как нужно правильно обратиться из обработчика события клик к nameObj.aMethod.something.some1 . Понимаю, что нельзя напрямую a0.aMethod.something.some1 тк есть еще объект a1. И в дальнейшем могут появиться и другие a2,a3...aN. Заранее спасибо

Последний раз редактировалось Аленький цветочек, 06.06.2015 в 15:13.
Ответить с цитированием