javascript - 如何简洁地赋值并立即调用一个函数变量?

标签 javascript function jslint iife

下面是一个在闭包中定义匿名函数的方法,调用该函数,然后忘记它:

(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);

关于javascript - 如何简洁地赋值并立即调用一个函数变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12358927/

相关文章:

javascript - 正则表达式中的 JSLint "insecure ^"

javascript - 具有主从关系的数据表ajax xml显示

c++ - 如何从函数返回具有多个值的数组? C++

javascript - jsLint错误: “somefunction() was used before it was defined”

javascript - 函数 (..) 抛出 'eval is evil' 消息

swift - Swift 中带参数的静态函数的选择器?

javascript - 在RaphaelJS中,如何将旋转的文本对齐到底部?

javascript - 有人可以解释这段代码是如何工作的吗?

javascript - AngularJs-在指令之间共享对象数组

python - 为什么导入的函数 "as"另一个名称保留其原始__name__?