Передача аргументов для работы в JavaScript - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть функция (регистр), как показано ниже,

let fn = (() => {
  let ab = {}; 
  let register = () => {
    console.log("hello" + ab[x])
  };
  return (x,y) => {
    ab[x] = y;
    return register();
  };
})();

эта функция работает только при вызове, как показано ниже,

let x = 'key';
let y = 'value';
fn(x,y);

Есть ли шанс позвонить напрямую, как

fn('key', 'value');

какие изменения я должен внести в функцию для прямого вызова

Ответы [ 2 ]

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

Проблема в том, что ваша register функция не знает о x.Вам нужно передать его из предыдущей функции:

let fn = (() => {
  let ab = {}; 
  let register = (x) => {
    console.log("hello" + ab[x])
  };
  return (x,y) => {
    ab[x] = y;
    return register(x);
  };
})();

fn("key", "value");
0 голосов
/ 22 февраля 2019

Я полагаю, это потому, что вы не определяете параметры в функциях.

   let fn = ((x,y) => {
  let ab = {}; 
  let register = () => {
    console.log("hello"+ab[x])};
    return (x,y) => {
      ab[x]=y;
      return register();
    };
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...