几个星期前,我开始学习Node.js.在我用来熟悉语言的代码示例中,我有时会看到函数以“)(0)关闭;”代替 ”);”。有谁知道(0)是什么意思?我个人认为这与退出状态有关,但我不确定,因为我似乎无法在互联网上找到任何相关信息。
在这里的代码中,我用代码函数粘贴了一部分代码,我有这个问题。
(function iterator(index) {
if (index == files.length) {
self._photos = only_files;
callback(null, self.photos);
return;
}
fs.stat(
self.path + "/" + files[index],
function (err, stats) {
if (err) {
callback({ error: "file_error",
message: JSON.stringify(err) });
return;
}
if (stats.isFile()) {
only_files.push(files[index]);
}
iterator(index + 1)
}
);
})(0);
答案 0 :(得分:1)
这是立即调用的函数表达式(IIFE)。它告诉函数立即执行,然后将0传递给index
参数。
您可以通过粘贴在控制台中查看示例:
(function iterator(index) {
console.log(index);
})(5);
在()
中输入任意内容以查看输出!
答案 1 :(得分:0)
IIFE的参数为0
。
此处它还名为iterator
,您实际上是在呼叫iterate(0)
。