Javascript-将静态值传递给回调函数

Javascript-将静态值传递给回调函数,javascript,Javascript,我想用一些参数创建回调函数,但我希望在创建函数时,其中的一个值永远不会更改并设置 体育 然后 我知道,这是因为变量a只有在函数被调用时才被计算。但是有什么解决办法吗?您可以通过所谓的 设a=2; 常量y=staticValue=>b=>staticValue*ba; a=44; console.logy1 我认为您可以应用函数式编程方法 常量getYFn=a,b=>{ 返回a*b; } 常数a=2 常量y=getYFn.bindnull,a; //常数y现在是部分应用第一个参数的函数 cons

我想用一些参数创建回调函数,但我希望在创建函数时,其中的一个值永远不会更改并设置

体育

然后


我知道,这是因为变量a只有在函数被调用时才被计算。但是有什么解决办法吗?

您可以通过所谓的

设a=2; 常量y=staticValue=>b=>staticValue*ba; a=44;
console.logy1 我认为您可以应用函数式编程方法

常量getYFn=a,b=>{ 返回a*b; } 常数a=2 常量y=getYFn.bindnull,a; //常数y现在是部分应用第一个参数的函数 console.logy1;//2. console.logy3;//6. 设a=2 让makeY==>{ 设staticValue=a; 返回b=>staticValue*b; } 设y=makeY; 或

你可以用

功能优先{ 第二功能b{ 返回a*b; } 返回第二; } 设x=first2//内部函数second将在变量a(在本例中为2)附近闭合 console.logx3 设y=first5//内部函数second将在变量a(在本例中为5)附近闭合
console.logy3如果你真的想让它成为静态的,为什么不直接使用b*2或类似的呢?可以使用本地存储和所有这些乱七八糟的东西——但是为什么要麻烦呢?只是将值硬编码到函数中是的,我需要记住原始值。
let a = 2;
let y = (b) => { let staticValue = a; return staticValue * b; }

y(1) => 2 -> OK
a = 3
y(1) => 3 -> Not OK -> I want the function to have the original value of a.
let a = 2
let y = ((staticValue, b) => {
  return staticValue * b;
}).bind(null, a)