Моя цель с помощью приведенного ниже кода состоит в том, чтобы любая функция, переданная в fn, ТОЛЬКО вызывалась один раз.Например, результат возвращает 5, и повторный вызов ниже также должен возвращать тот же номер.То, что у меня есть сейчас, продолжает возвращать новый номер вместо того же самого.
function once(fn) {
var done = false;
return function () {
if (!done) {
done = true;
return fn.apply(this, arguments);
} else if (done) {
return fn.apply(this, arguments);
}
};
}
function add(x, y) {
return x + y;
}
var addOnce = once(add);
var result = addOnce(2, 3);
result = addOnce(4, 4);