Как кратко назначить и немедленно вызвать переменную функции?
Ниже приведен метод определения анонимной функции в замыкании, ее вызова и ее забытия:
(function () { "do stuff"; })();
Это используется для поддержания ограниченной области без добавления большого объема к сценарию (IIFE: выражение для немедленного вызова функции).
Что, если вы надеетесь немедленно выполнить функцию, при этом сохраняя ее для использования в будущем, как показано ниже:
var doThing;
(doThing = function () { "do stuff"; })();
Это работает в браузерах, которые я тестировал (Chrome, FF, IE8, IE10), но не проходит JSLint (Bad Invocation). Есть ли какие-либо проблемы совместимости с этим?
Есть ли способ сделать это, на что любезно смотрится JSLint?