Показать сообщение отдельно
  #1 (permalink)  
Старый 25.03.2013, 09:54
Аспирант
Отправить личное сообщение для xfreewindx Посмотреть профиль Найти все сообщения от xfreewindx
 
Регистрация: 19.08.2012
Сообщений: 33

Поясните код
Здравствуйте!
Еще вопрос по задачке из учебника:

Создайте декоратор makeCaching(f), который берет функцию f и возвращает обертку, которая кеширует её результаты.

function f(arg) { 
  return Math.random()*arg; // может быть любой функцией
}

function makeCaching(f) { /* ваш код */ }

f = makeCaching(f);

var a, b;

a = f(1);
b = f(1);
alert( a == b ); // true (значение закешировано)

b = f(2);
alert( a == b ); // false, другой аргумент => другое значение


Скажите, случайно в этой строчке нет ошибки?
f = makeCaching(f);
У нас есть функция f, потом мы еще ей же присваиваем функцию makeCaching, переопределяем f. Как-то закольцованно получается.
Что-то я не могу до конца код догнать.
Ответить с цитированием