我试图实现一个小连接功能。它应该在参数中取一个对象并将它们放入一个函数中。我的期望应该始终使用最新的对象。看起来这不是真的。
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
答案 0 :(得分:3)
execute
中的变量是一个参数,即一个局部变量。它不引用全局store
变量。
删除参数并直接引用全局变量,或者改变对象的属性,例如: store.type = "updated";
。
这种离奇的功能安排有什么意义呢?