函数计数器可以关闭吗?
let count = 0;
function counter() {
return count +=1;
}
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
答案 0 :(得分:3)
功能计数器可以是闭包
是
闭包不仅在嵌套函数中。全局范围内的功能声明也是一个闭包。根据{{3}}
闭包是函数和声明该函数的词法环境的组合
答案 1 :(得分:1)
闭包是函数及其引用的组合 周围状态(词汇环境)结合在一起。
每次创建函数时,都会在函数创建时创建一个闭包
let count = 0;
function counter() {
return count +=1;
}
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
函数计数器未定义任何变量count
仍可访问该计数,因为
count
已在创建 closures 的范围内进行了定义。此外, closures 不仅可以读取,而且可以操纵其{{ 1}},具体来说,lexical environment
完全不是闭包,
功能计数器+其词法环境为闭包