и в прототипах не видно переменной , в которой лежит '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');
}