我有一个功能(案例)如下,
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();
};
})();