¿Por qué "esto" en una función anónima no está definida cuando se usa estricto?

Por que esest en una función anónima indefinida cuando se usa JavaScript en modo estricto? Entiendo por qué esto podría tener sentido, pero no pude encontrar ninguna respuesta concreta.

Ejemplo

(function () {
    "use strict";

    this.foo = "bar"; // *this* is undefined, why?
}());

Prueba en un violín:http: //jsfiddle.net/Pyr5g/1 Echa un vistazo al registrador (firebug).

Respuestas a la pregunta(6)

Su respuesta a la pregunta