我有一个函数(情况),如下
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');
我必须在功能中进行哪些更改才能直接调用
问题是您的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();
};
})();