我有一个下面的函数(例)
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');
我必须在函数中进行哪些更改才能直接调用
答案 0 :(得分:1)
问题是您的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");
答案 1 :(得分:0)
我相信这是因为您没有在函数中定义参数。
let fn = ((x,y) => {
let ab = {};
let register = () => {
console.log("hello"+ab[x])};
return (x,y) => {
ab[x]=y;
return register();
};
})();