问题:
请你编写并返回一个 计数器 函数,它接收一个整型参数 n 。这个 计数器 函数最初返回 n,每次调用它时返回前一个值加 1 的值 ( n
, n + 1
, n + 2
,等等)。
输入:
n = 10
["call","call","call"]
输出:[10,11,12]
解释:
counter() = 10 // 第一次调用 counter(),返回 n。
counter() = 11 // 返回上次调用的值加 1。
counter() = 12 // 返回上次调用的值加 1。
提示:
-1000 <= n <= 1000
最多对 counter() 进行 1000 次调用
解答:
/**
* @param {number} n
* @return {Function} counter
*/
var createCounter = function(n) {
return function() {
return n++;
};
};
/**
* const counter = createCounter(10)
* counter() // 10
* counter() // 11
* counter() // 12
*/
解析:
当前函数执行完毕后,变量不会被垃圾回收机制回收,可以被缓存继续使用。
考点:
闭包是能够访问其它函数内部变量的函数。 闭包的作用之一是实现缓存。
代码参考
https://leetcode.cn/problems/counter/solutions/2241087/bi-bao-by-juyouxi-89sp/
解析参考