函数的javascript闭包';s参数在更新时不会反映出来

函数的javascript闭包';s参数在更新时不会反映出来,javascript,closures,Javascript,Closures,我试图实现一个小的连接功能。它应该在参数中获取一个对象,并将它们放入函数中。我希望最新的物品应该一直使用。看来不是真的 let store = { type: 'initial' }; console.log(store); function connect(param) { const connected2 = function (fn) { return function () { return fn(param); } }; return co

我试图实现一个小的连接功能。它应该在参数中获取一个对象,并将它们放入函数中。我希望最新的物品应该一直使用。看来不是真的

let store = { type: 'initial' };

console.log(store);

function connect(param) {
  const connected2 = function (fn) {

    return function () {
      return fn(param);
    }
  };
  return connected2;
}

function execute(store) {
  console.log(store);
}

const connected = connect(store)(execute);

connected(); // console => { type: 'initial' }
store = {type: 'updated'};
connected(); // console { type: 'initial' } but expect updated

execute
中的变量是一个参数,即局部变量。它不引用全局
存储
变量

删除参数并直接引用全局变量,或者更改对象的属性,例如
store.type=“updated”


这种奇怪的函数安排到底有什么意义呢?

connect
看起来像是一个奇怪的curried函数,它被懒散地计算。将其重写为
const connect=param=>fn=>()=>fn(param)因为您已经依赖于ES2015语法。真正的代码使用ES2015语法,其工作方式与提供的示例相同。它可能是一个以咖喱形式出现的函数,可以懒散地进行计算。这是中所述问题的一个小示例。我想集成两个库。@谢谢你的回答。你把我引向正确的方向。