为什么参数通过关闭无效?
Why the parameter goes invalid through closure?
根据代码片段,为什么Fn1无法获取最开始的参数“foo”?如果我仍然想使用闭包的形式而不是在Fn3中引入一个新的参数,有没有可能让Fn1访问“foo”?
const Fn1 = (txt) => {
console.log(txt);
}
const Fn3 = (fn, num) => {
return () => {
fn(); // undefined
console.log(num) // 7
}
}
const Fn2 = Fn3(Fn1, 7);
Fn2("foo"); // undefined, 7
您需要传递参数:
const Fn3 = (fn, num) => {
return (parameter) => {
fn(parameter);
console.log(num);
}
}
const Fn2 = Fn3(Fn1, 7);
Fn2("foo");
根据代码片段,为什么Fn1无法获取最开始的参数“foo”?如果我仍然想使用闭包的形式而不是在Fn3中引入一个新的参数,有没有可能让Fn1访问“foo”?
const Fn1 = (txt) => {
console.log(txt);
}
const Fn3 = (fn, num) => {
return () => {
fn(); // undefined
console.log(num) // 7
}
}
const Fn2 = Fn3(Fn1, 7);
Fn2("foo"); // undefined, 7
您需要传递参数:
const Fn3 = (fn, num) => {
return (parameter) => {
fn(parameter);
console.log(num);
}
}
const Fn2 = Fn3(Fn1, 7);
Fn2("foo");