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

2024-04-24

以下是在闭包中定义匿名函数、调用该函数并忽略它的方法:

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

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

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

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

这在我测试过的浏览器(Chrome、FF、IE8、IE10)中有效,但没有通过 JSLint(错误调用)。这样做有兼容性问题吗?

有没有一种 JSLint 所青睐的方法来实现这一点?


如果绝对需要通过 jslint 那么:

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

应该做这项工作。

Edit

用于在期间传递参数.call

var doThing;
(doThing = function (param1, param2) { 'do stuff'; }).call(this, arg1, arg2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何简洁地赋值并立即调用函数变量? 的相关文章