Node.js - 函数末尾的“(0)”是什么意思

时间:2015-08-04 17:39:55

标签: node.js function

几个星期前,我开始学习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);

2 个答案:

答案 0 :(得分:1)

这是立即调用的函数表达式(IIFE)。它告诉函数立即执行,然后将0传递给index参数。

您可以通过粘贴在控制台中查看示例:

(function iterator(index) {
    console.log(index);
})(5);

()中输入任意内容以查看输出!

答案 1 :(得分:0)

IIFE的参数为0

此处它还名为iterator,您实际上是在呼叫iterate(0)