立即调用的函数表达式(IIFE)是一种在定义后立即执行的函数。它的主要目的是创建一个私有的作用域,避免变量污染全局命名空间,并且可以在需要时立即执行函数。
下面是一个使用IIFE创建斐波那契函数的示例代码:
var fibonacci = (function() {
var memo = {};
function fib(n) {
if (n <= 1) {
return n;
} else {
if (memo[n]) {
return memo[n];
} else {
memo[n] = fib(n - 1) + fib(n - 2);
return memo[n];
}
}
}
return fib;
})();
console.log(fibonacci(10)); // 输出:55
在这个示例中,我们使用了一个立即调用的函数表达式来创建斐波那契函数。函数内部定义了一个私有的memo
对象,用于存储已经计算过的斐波那契数值,以提高计算效率。
在调用fibonacci
函数时,它会返回一个斐波那契函数fib
,并且memo
对象会在函数执行过程中被保留下来。这样,当再次调用fibonacci
函数时,可以直接从memo
对象中获取已经计算过的结果,避免重复计算。
斐波那契函数是一个经典的递归函数,用于生成斐波那契数列。它的定义是:前两个数是0和1,后续的数是前两个数之和。在这个示例中,我们计算了斐波那契数列的第10个数,结果为55。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云