function cached(fn){
// Create an object to store the results returned after each function execution.
const cache = Object.create(null);
// Returns the wrapped function
return function cachedFn (str) {
// If the cache is not hit, the function will be executed
if ( !cache[str] ) {
let result = fn(str);
// Store the result of the function execution in the cache
cache[str] = result;
}
return cache[str]
}
}
Насколько я понимаю, cache [str] проверяет, является ли переменная кэша массивом, содержащим в нем параметр str. Что имеет смысл, поскольку массив является объектом в js. По сути, это странный способ определения массива. Fn (str) выбрасывает остаток моего понимания кода. Это какой-то пример наследования или что-то еще?