¿Por qué no está definido esto en una función anónima cuando se usa javascript en modo estricto? Entiendo por qué esto podría tener sentido, pero no pude encontrar una respuesta concreta.
Ejemplo:
(function () {
"use strict";
this.foo = "bar"; // *this* is undefined, why?
}());
Prueba en un violín: http://jsfiddle.net/Pyr5g/1/ Revisa el registrador (firebug).