Показать сообщение отдельно
  #1 (permalink)  
Старый 16.12.2017, 18:24
Аспирант
Отправить личное сообщение для Luca Посмотреть профиль Найти все сообщения от Luca
 
Регистрация: 20.06.2017
Сообщений: 69

Методы класса ES6 и области видимости
Здравствуйте.
Вопрос, конечно, "баян-бабаян" сто раз заданный, но я не нашёл ответ...
В книгах про классы ES6 всё так весело и безоблачно...
class Widget{
    constructor(elem){
        let inner = document.create('div')
        inner.textContent = 'CONTENT'
        inner.addEventListener('click', this.listener)
        inner.dataset.any = 'Hello'
        
        elem.appendChild(inner)
    }
    listener(e){
        this.notVisibleMethod(e.target)
    }
    notVisibleMethod(node){
        if(node.dataset.any === 'Hello'){
            alert('Hello')    
        }
    }

}
let app = document.getElemetById('app')
let widget = new Widget(app)

listener виден, те, если я просто пишу в listener "alert('Hello')", то работает, но из листенера не видно "не зги"...
я упростил, естественно, но суть ясна для опытных: в лситенер не видит notVisibleMethod.
я даже понимаю, что контекст листенера это HTMLElement...
радости всё равно мало
я даже Webpack настроил и у меня всё собирается: sass, babel, uglify, но когда "тык", то "is not a function..."

Последний раз редактировалось Luca, 16.12.2017 в 18:31.
Ответить с цитированием