Der Inhalt dieses Artikels befasst sich mit dem Verständnis reiner Funktionen (Code) in der funktionalen JavaScript-Programmierung. Ich hoffe, dass er für Freunde hilfreich ist.
Wie versteht man reine Funktionen in der funktionalen Programmierung?
Konzept: Es hängt nicht vom Ausführungskontext ab und beeinflusst auch nicht die Variablen des Kontexts. Die Ausgabe wird nur durch die bestimmt Eingabe
Den Code verstehen
// 综上,非纯函数,输入依赖外部变量 let b = 1 function unPure(a) { return a + b } // 综上,非纯函数,输出改变外部变量 let o = {} function unPure(object) { object.ex = 1 return object } // 综上, 纯函数, 输出输入不影响外部变量 function pure(a) { let b = 1 return a + b }
Ich glaube, Sie haben herausgefunden, dass sowohl das Konzept als auch das Codeverständnis sehr einfach sind. Warum also reine Funktionen verwenden? Nachfolgend listen wir die Vorteile der Verwendung reiner Funktionen auf
Reine Funktionen können basierend auf Eingaben zwischengespeichert werden
// 下面的代码我们可以发现相同的输入,再第二次调用的时候都是直接取的缓存 let squareNumber = memoize((x) => { return x*x; }); squareNumber(4); //=> 16 squareNumber(4); // 从缓存中读取输入值为 4 的结果 //=> 16 squareNumber(5); //=> 25 squareNumber(5); // 从缓存中读取输入值为 5 的结果 //=> 25
Wie implementiert man es? Schauen wir uns den folgenden Code an
const memoize = (f) => { const cache = {}; return () => { var arg_str = JSON.stringify(arguments); // 关键就在这里,我们利用纯函数相同输入相同输出的逻辑,在这里利用cache做一个简单的缓存,当这个参数之前使用过时,我们立即返回结果就行 cache[arg_str] = cache[arg_str] || f.apply(f, arguments); return cache[arg_str]; }; };
Portabilität Um es ganz klar auszudrücken: Sex kann verwendet werden Wenn Sie es in Projekt A verwendet haben, können Sie es einfach mitbringen
Lassen Sie uns den Code noch einmal verstehen
// 我们注意看下方有两个注册的函数 // 不纯的, 如果B项目想要用到这个函数,很显然我们将其依赖的其它服务给搬过去 const signUp = function(attrs) { var user = saveUser(attrs); welcomeUser(user); } // 纯的, 我们再来看看下面这个纯函数写法,纯函数给了我们足够多的信息,我们想在B项目使用其功能只需将单个方法搬过去再给其注入需要的参数即可 const signUp = function(Db, Email, attrs) { return function() { var user = saveUser(Db, attrs); welcomeUser(Email, user); }; };
Zusammenfassend lässt sich sagen, dass wir uns nicht um andere externe Informationen kümmern müssen. Wir müssen der Funktion nur spezifische Eingaben geben und ihre Ausgabe bestätigen.
Das obige ist der detaillierte Inhalt vonReine Funktionen in der funktionalen JavaScript-Programmierung (Code) verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!