¿Cómo asignar e invocar de manera concisa una variable de función?

El siguiente es un método para definir una función anónima dentro de un cierre, invocar la función y olvidarlo:

(function () { "do stuff"; })();

Esto se usa para mantener un alcance limitado sin agregar volumen al script (IIFE: Expresión de función invocada de inmediato).

¿Qué sucede si está esperando ejecutar una función de inmediato, mientras sigue conservando la función para uso futuro, como lo siguiente?

var doThing;
(doThing = function () { "do stuff"; })();

Esto funciona en los navegadores que he probado (Chrome, FF, IE8, IE10), pero no pasa JSLint (Bad Invocation). ¿Hay algún problema de compatibilidad con hacerlo de esta manera?

¿Hay alguna forma de lograr esto que JSLint considere con amabilidad?

Respuestas a la pregunta(5)

Su respuesta a la pregunta