Что такое "({})" в JavaScript? - PullRequest
       7

Что такое "({})" в JavaScript?

0 голосов
/ 15 января 2019

Я изучаю JavaScript / Node.js. Глядя на bot.js из botkit-starter-web строка 33, он показывает:

var db = require(__dirname + '/components/database.js')({});

У меня вопрос: что означает ({}) в этой строке? Я не могу Google ответить за него.

Ответы [ 3 ]

0 голосов
/ 15 января 2019

Сначала вы знаете, что в database.js существует этот код:

module.exports = function (object) {
  // . . .
  // some thing on object
  return object;
};

когда вам требуется этот JS-файл, вы можете отправить данные объекта функции выше (пустые или не пустые)

var db = require(__dirname + '/components/database.js')({});
0 голосов
/ 15 января 2019

Когда модуль загружен (другими словами, загрузить файл javascript с использованием require (..)), он возвращает все, что назначено для module.exports, например,

    //javascript file add.js 
      module.exports = function(a,b){
        return a+b;
      }

    //Usage in app.js
      var add = require("add.js");
      var result = add(2+2);//result would be 4
    //Similarly 
      var result = require("add.js")(2+2);//result would be 4

В вашем случае database.js возвращает функцию в свой module.exports, и эта функция принимает один параметр, который является объектом.

var db = require(__dirname + '/components/database.js')({});

В приведенном выше фрагменте вы передаете пустой объект в функцию. Создатели database.js предоставили вам опции для настройки некоторых значений, например,

var db = require(__dirname + '/components/database.js')({
   port:3306,
}); 
//or 
var options = {};
options.port = 3306;
var Database = require(__dirname + '/components/database.js')
var db = Database(options);
0 голосов
/ 15 января 2019

require(...) используется для загрузки модуля, возвращаемое значение require - это модуль, который может быть любым значением javascript (зависит от загружаемого модуля).

В этом случае предполагается, что это функция.

Добавление ({}) вызывает эту функцию и передает пустой объект {} в качестве первого и единственного аргумента.

Возвращаемое значение этого вызова функции, хранящееся в переменной db.

Это эквивалентно следующему:

var database = require(__dirname + '/components/database.js');
var db = database({});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...