Wie kann eine Funktionsvariable präzise zugewiesen und sofort aufgerufen werden?

Die folgende Methode definiert eine anonyme Funktion innerhalb eines Closures, ruft die Funktion auf und vergisst sie:

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

Dies wird verwendet, um einen begrenzten Gültigkeitsbereich beizubehalten, ohne dem Skript Bulk hinzuzufügen (IIFE: Immediately-Invoked Function Expression).

Was ist, wenn Sie hoffen, eine Funktion sofort auszuführen und die Funktion dennoch für die zukünftige Verwendung zu behalten, wie z.

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

Dies funktioniert in den von mir getesteten Browsern (Chrome, FF, IE8, IE10), aber dies besteht JSLint nicht (Bad Invocation). Gibt es Kompatibilitätsprobleme bei dieser Vorgehensweise?

Gibt es eine Möglichkeit, dies zu erreichen, die von JSLint gerne gesehen wird?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage