我正在寻找问题的解决方案,我发现了这个答案 https://stackoverflow.com/a/6962808/2724978
写的函数是:
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function() {
doSomething();
loop();
}, rand);
}());
我的问题是,为什么括号内的函数末尾也有 () ?这让我有点困惑,以前从未见过。
最佳答案
这是一个 Immediately Invoked Function Expression 的例子.
上面的链接将解释您需要了解的所有内容,但本质上有两件事正在发生。
- 括在括号内告诉解析器将其中的所有内容都视为表达式。
- 之后立即调用表达式(使用
()
)确保该表达式的范围是密封的。
关于javascript - 为什么这个 javascript 函数在括号内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35795523/