如何简洁地分配并立即调用函数变量?

Aej*_*jay 5 javascript function jslint iife

以下是在闭包中定义匿名函数,调用函数并忘记它的方法:

(function () { "do stuff"; })();
Run Code Online (Sandbox Code Playgroud)

这用于维持有限的范围而不向脚本添加批量(IIFE:立即调用的函数表达式).

如果您希望立即执行某个功能,同时仍保留该功能以供将来使用,如下所示:

var doThing;
(doThing = function () { "do stuff"; })();
Run Code Online (Sandbox Code Playgroud)

这适用于我测试的浏览器(Chrome,FF,IE8,IE10),但这不会传递JSLint(错误调用).这样做有兼容性问题吗?

是否有一种方法可以实现这一点,JSLint看起来很友好?

Cri*_*hez 7

如果绝对需要传递jslint,那么:

var doThing;
(doThing = function () { "do stuff"; }).call();
Run Code Online (Sandbox Code Playgroud)

应该做的工作.

编辑

在期间通过params .call

var doThing;
(doThing = function (param1, param2) { 'do stuff'; }).call(this, arg1, arg2);
Run Code Online (Sandbox Code Playgroud)