• Вопрос про класс и его прототип?

    @karambafe
    и в прототипах не видно переменной , в которой лежит 'this'.


    Так она в this и не записана, надо вот так делать:
    this.popup = this // хотя это абсолютно бессмысленно


    И всё бы хорошо, но если методы записывать как прототипы, то 'close' перестаёт работать и в прототипах не видно переменной

    this.overlay.on('click', this.close);
    Тут идет потеря контекста, если сделать в методе close console.log(this), то увидите в this обычную DOM ноду, а не jq объект. Соответсвенно там и не будет метода removeClass

    //  Это решение проблемы, но не решение очень странного, на мой взгляд, кода
    Popup.prototype.close = function(){
      $(this).removeClass('open');
    }
    Ответ написан
    2 комментария