Как экспортировать ту же функцию, но с разными параметрами при экспорте - PullRequest
0 голосов
/ 22 февраля 2019

Мне нужно экспортировать ту же предопределенную функцию, но с другими параметрами при экспорте.

Чего я пытаюсь достичь:

module.exports = {
    adminSaysHello: sayText("Hello", "admin"),
    adminSaysText: sayText(text, "admin"),
    sayText: sayText
}

function sayText(text, author){
    console.log(`${author} said: ${text}`);
}

module.adminSaysHello();
module.adminSaysText("Good Bye");
module.sayText("Hello, my name is Foo", "Foo");

При выполнении вышеуказанного скрипта я получаюследующая ошибка:

    adminSaysText: sayText(text, "admin"),
                           ^

ReferenceError: text is not defined

Как правильно выполнить этот экспорт?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вам нужно будет создать дополнительные функции, которые затем вызовут оригинальную функцию с конкретными параметрами.Это будет выглядеть примерно так:

module.exports = {
    adminSaysHello: () => sayText('Hello', 'admin'),
    adminSaysText: (text) => sayText(text, 'admin'),
    sayText: sayText
}
0 голосов
/ 22 февраля 2019

Вы должны использовать функцию закрытия в JavaScript, чтобы она работала.Попробуйте это

module.exports = {
    adminSaysHello: sayText("Hello", "admin"),
    adminSaysText: sayText(text, "admin"),
    sayText: sayText
}

function sayText(text, author){

  return function(){
    console.log(`${author} said: ${text}`);
  }
}

module.adminSaysHello();
module.adminSaysText("Good Bye");
module.sayText("Hello, my name is Foo", "Foo");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...