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

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

这用于维护有限的范围,而不会在脚本中添加大量内容(IIFE:立即调用的函数表达式)。

如果您希望立即执行功能,同时仍保留该功能以备将来使用,该怎么办,如下所示:
var doThing;
(doThing = function () { "do stuff"; })();

这可以在我测试过的浏览器(Chrome,FF,IE8,IE10)中使用,但不会通过JSLint(错误调用)。这样做是否存在兼容性问题?

JSLint是否有实现此目标的方法?

最佳答案

如果绝对需要传递jslint,则:

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

应该做的工作。

编辑

用于在.call期间传递参数
var doThing;
(doThing = function (param1, param2) { 'do stuff'; }).call(this, arg1, arg2);

09-25 17:00