Функции вызываются в том контексте, в котором
вызываются (это важная тавтология), а не объявляются.
Вызываете bar в конструкторе? Там this равен тому объекту, который создаётся.
В том месте, где вызывается glob() действует глобальный контекст.
Обработчик события вызывается js-движком, который работает, разумеется, в глобальном контексте, поэтому и для обработчика действует глобальный контекст, но движок автоматически для удобства разработчиков привязывает контекст элемента, на котором произошло событие.
Рекомендую ознакомиться:
Привязка контекста и карринг: "bind"