Передача аргументов для работы в JavaScript
У меня есть функция (случай), как показано ниже,
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 ответа
Проблема ваша 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");
Я считаю, что это потому, что вы не определяете параметры в функциях.
let fn = ((x,y) => {
let ab = {};
let register = () => {
console.log("hello"+ab[x])};
return (x,y) => {
ab[x]=y;
return register();
};
})();