Ich wurde diese Frage gestellt und ich war mir nicht sicher, wie ich dies anvisieren kann.JavaScript eine Funktion schreiben, die eine Funktion zwischenspeichert (Memo)
Frage:
eine Cache-Funktion schreiben, die eine Funktion speichert und liefert ein Ergebnis, wenn es bereits in der Vergangenheit ausgeführt wurde.
Let's say if there's a function Fibonacci(20) = 6765
cacheFunction(Fibonacci(20)) // it should not execute the function instead return 6765.
But if i give cacheFunction(Fibonacci(21)) //It's not cached, execute the function
Mein Versuch:
function cacheFunction(funct) {
var obj = {};
if (obj.hasOwnProperty(funct)) { //checking if the argument is in the object?
return obj[funct];
} else { //if not present, then execute the function, store it in cache and return the value.
obj[funct];
return funct;
}
}
Aber ich nicht in der Lage bin zu verstehen, wie die Argumente innerhalb einer anderen Funktion in einer Funktion zu bekommen? (Die Person hat mir gesagt, dass ich den Verschluss benutzen muss, um es zu bekommen)
Kann mir jemand aufklären?
BTW: http://stackoverflow.com/search?q=javascript+memize –
Mögliche Duplikate von [Javascript Memoization Erläuterung?] (Http://stackoverflow.com/questions/8548802/javascript-memization-explanation) – m0meni