以下是在闭包中定义匿名函数,调用该函数并忘记它的方法:
(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);