function fib(n) {
    if (n <= 2) {
        return 1;
    }
    return fib(n - 1) + fib(n - 2);
}

function memoize(func) {
    memo = {};
    return function(n) {
        if (n in memo) {
            return memo[n];
        }
        memo[n] = func(n);
        return memo[n];
    }
}

const decoratedFib = memoize(fib);

for (let i = 1; i < 10; i++) {
    console.log(decoratedFib(i));
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: