window
странно.Это и объект window
, и объект глобальной области видимости.
Так как * [1005 * является [[Global Context]]], то это работает:
var o = 5;
window.o === 5; // true
Поскольку window
являетсятогда глобальная переменная window.window === window
Тот факт, что в IE8 window !== this
это потому, что IE8 ненавидит вас.IE8 действительно испортил способ, которым он реализовал window
как глобальный контекст и как глобальную переменную.
Для решения вашей проблемы с кодом измените
window.myLib = myLib;
на
window.myLib = function() {
return new myLib();
};