2015-08-04 2 views
0

Несколько недель назад я начал изучать Node.js. В примерах кода, которые я использую для ознакомления с языком, я иногда вижу функции, закрывающиеся с помощью ") (0);" вместо ");". Кто-нибудь знает, что означает (0)? Я лично думаю, что это имеет какое-то отношение к статусу выхода, но я не уверен, потому что я не могу найти ничего об этом в Интернете.Node.js - Что означает «(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); 

ответ

1

Это выражение с выражением немедленного вызова (IIFE). Он сообщает функции немедленно выполнить, а затем передает 0 в параметр index.

Вы можете увидеть пример в консоли с помощью оклейки:

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

Введите что-нибудь в (), чтобы увидеть результат!

+1

Большое спасибо! Это то, что теперь имеет для меня больше смысла. – Yournamezz

0

Это IIFE с параметром 0.

Здесь также называется iterator, вы по существу звоните iterate(0).

Смежные вопросы