Как кратко назначить и немедленно вызвать переменную функции?

Ниже приведен метод определения анонимной функции в замыкании, ее вызова и ее забытия:

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

Это используется для поддержания ограниченной области без добавления большого объема к сценарию (IIFE: выражение для немедленного вызова функции).

Что, если вы надеетесь немедленно выполнить функцию, при этом сохраняя ее для использования в будущем, как показано ниже:

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

Это работает в браузерах, которые я тестировал (Chrome, FF, IE8, IE10), но не проходит JSLint (Bad Invocation). Есть ли какие-либо проблемы совместимости с этим?

Есть ли способ сделать это, на что любезно смотрится JSLint?

Ответы на вопрос(5)

Ваш ответ на вопрос