Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung von Beispielen für JS-Currying

Detaillierte Erläuterung von Beispielen für JS-Currying

零下一度
Freigeben: 2017-06-26 15:14:38
Original
1534 Leute haben es durchsucht

1. Quelle

In der Informatik bedeutet Currying, eine Funktion, die mehrere Parameter akzeptiert, in eine Funktion umzuwandeln, die einen einzelnen Parameter akzeptiert (den ersten Parameter der ursprünglichen Funktion), und eine Technik zum Zurückgeben von a Neue Funktion, die die verbleibenden Argumente akzeptiert und ein Ergebnis zurückgibt. Diese Technik wurde von Christopher Strachey nach dem Logiker Haskell Curry benannt, obwohl sie von Moses Schönfinkel und Gottlob Frege erfunden wurde.

2. curring(1)(2)(3)(4)() Wie füge ich Parameter hinzu, um das Ergebnis auf 10 zu bringen?

1. Eigentlich müssen wir nur darüber nachdenken, wie wir jeden Parameter beibehalten und die Parameter schließlich beim Aufruf akkumulieren. Dies ist der Fokus unseres Denkens.

function keepParams(){var arg = [];return function params(){if(arguments.length === 0){return arg;
    }
    Array.prototype.push.apply(arg,arguments);  //对apply方法不熟悉的可以去百度下return params;
}
}var curring = keepParams();
console.log(curring(1)(2)(3)(4)()); // [1, 2, 3, 4]
Nach dem Login kopieren

2. Durch den ersten Schritt können wir die Parameter ermitteln. Dann können wir als nächstes tun, was wir wollen.

Wie implementiert man die Addition?

3. Ändern Sie die Grundfunktion

function add(){var sum = 0,l = arguments.length;for(var i = 0; i < l; i++){
        sum += arguments[i];
    }return sum;
};function keepParams(fn){var arg = [];return function params(){if(arguments.length === 0){return fn.apply(this,arg);
        }
        Array.prototype.push.apply(arg,arguments);  //对apply方法不熟悉的可以去百度下return params;
    }
}var curring = keepParams(add);//console.log(curring(1)(2)(3)(4)()); // 10console.log(curring(1)(2,3,4)()); // 10
Nach dem Login kopieren

4. Nachdem nun der dritte Schritt der Addition implementiert ist, multiplizieren und dividieren Sie. Warten Sie, bis eine Reihe von Vorgängen abgeschlossen ist. Allerdings müssen Sie auf die Verwendung von Abschlüssen achten, wenn Sie dieselbe Methode zweimal hintereinander aufrufen.

arg wird im Speicher gespeichert

console.log(curring(1)(2)(3)(4)()); // 10console.log(curring(1)(2,3,4)()); // 20
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für JS-Currying. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage