Ich habe versucht, eine kleine Verbindungsfunktion zu implementieren. Es sollte ein Objekt in Parameter nehmen und sie in eine Funktion setzen. Meine Erwartung das neueste Objekt sollte immer verwendet werden. Sieht so aus als wäre es nicht wahr.Javascript Schließung von Funktionsparameter wird nicht wiedergegeben, wenn es aktualisiert wird
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' sieht aus wie eine seltsame Curry-Funktion, die faul ausgewertet wird. Schreiben Sie es in 'const connect = param => fn =>() => fn (param);' da Sie sich bereits auf die ES2015-Syntax verlassen. – ftor
der echte Code verwendet ES2015 Syntax und es funktioniert auf die gleiche Weise wie im Beispiel zur Verfügung gestellt. –