Jak zwięźle przypisać i natychmiast wywołać zmienną funkcji?

Poniżej przedstawiono metodę definiowania anonimowej funkcji w zamknięciu, wywołania funkcji i jej zapomnienia:

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

Służy to do utrzymywania ograniczonego zakresu bez dodawania całości do skryptu (IIFE: Wyrażenie funkcji wywoływane natychmiastowo).

Co zrobić, jeśli masz nadzieję na natychmiastowe wykonanie funkcji, zachowując jednocześnie funkcję do wykorzystania w przyszłości, jak poniżej:

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

Działa to w przeglądarkach, które testowałem (Chrome, FF, IE8, IE10), ale nie przechodzi to przez JSLint (Bad Invocation). Czy są jakieś problemy ze zgodnością z robieniem tego w ten sposób?

Czy istnieje sposób na osiągnięcie tego, na co JSLint patrzy uprzejmie?

questionAnswers(5)

yourAnswerToTheQuestion