¿Por qué esta 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.¿Por qué es "esto" en una función anónima indefinida cuando se usa strict?
Ejemplo:
(function() {
"use strict";
this.foo = "bar"; // *this* is undefined, why?
}());
prueba en un violín: http://jsfiddle.net/Pyr5g/1/ Salida del registrador (Firebug).
Tenga en cuenta que esto no tiene nada que ver con las funciones anónimas, sino con el método de invocación. Vea [este violín modificado] (http://jsfiddle.net/Pyr5g/3/) (busque en el registro de la consola). – Phrogz
@Phrogz: es posible que de aquí provenga la confusión. Gracias por señalar eso. –