Como concisamente atribuir e invocar imediatamente uma variável de função?

A seguir, um método para definir uma função anônima em um encerramento, chamar a função e esquecê-la:

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

Isso é usado para manter um escopo limitado sem adicionar volume ao script (IIFE: Expressão da Função Imediatamente Invocada).

E se você estiver esperando para executar imediatamente uma função, mantendo a função para uso futuro, como o seguinte:

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

Isso funciona nos navegadores que eu testei (Chrome, FF, IE8, IE10), mas isso não passa JSLint (Bad Invocation). Há algum problema de compatibilidade ao fazer isso dessa maneira?

Existe uma maneira de realizar isso que é considerado pelo JSLint?

questionAnswers(5)

yourAnswerToTheQuestion