小さな接続関数を実装しようとしました。それは、パラメータでオブジェクトを取り、それらを関数に入れるべきです。私の期待では、最新のオブジェクトを常に使用する必要があります。それは本当でないように見えます。javascript関数のパラメータからのクロージャが更新時に反映されない
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
'connect'は怠惰に評価された奇妙なカルト関数のように見えます。既にES2015の構文に頼っているので、 'const connect = param => fn =>()=> fn(param);'に書き直してください。 – ftor
実際のコードはES2015の構文を使用し、提供されている例と同じ方法で動作します。 –